在python中将unicode json转换为普通的json

时间:2016-04-30 11:46:43

标签: python json unicode

我通过在我的python代码中执行{u'a': u'aValue', u'b': u'bValue', u'c': u'cValue'}获得了以下json:request.json。现在,我想将unicode json转换为普通的json,这应该是这样的:{"a": "aValue", "b": "bValue", "c": "cValue"}。如何在不进行任何手动更换的情况下完成此操作?请帮忙。

4 个答案:

答案 0 :(得分:14)

{u':你' aValue',' b':你' bValue',你':&& #39; cValue'}是一个你称为unicode json的字典。现在,用你的语言,如果你想要一个普通的json,那么就这样做:

x={u'a': u'aValue', u'b': u'bValue', u'c': u'cValue'}
y=json.dumps(x)
print y

输出将是{" a":" aValue"," c":" cValue"," b&# 34;:" bValue"}

答案 1 :(得分:6)

对于python 2.x

import yaml
import json
json_data = yaml.load(json.dumps(request.json()))

现在这个json_data可以用作json,也可以有json列表。

答案 2 :(得分:1)

您可以使用列表推导将所有键和值编码为ascii,如下所示:

dict([(k.encode('ascii','ignore'), v.encode('ascii','ignore')) for k, v in dct.items()])

注意:将数据保存在unicode中通常没什么好处,所以除非你有特殊的理由不让它以unicode存在,否则我会留下它。

答案 3 :(得分:0)

PyPi中可用的库可能会有所帮助,请参阅:unidecode

它旨在将带有变音符号(重音符号)的欧洲字符转换为其基本ASCII字符,但是当unicode字符已经在ASCII范围内时,效果也是如此。

from unicode import unidecode

def fUnUn(sOrU):
    return unidecode(sOrU).encode('ascii') if type(sOrU) is unicode else sOrU

sASCII = fUnUn(u'ASCII')