我通过在我的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"}
。如何在不进行任何手动更换的情况下完成此操作?请帮忙。
答案 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')