在Python中读取格式错误的JSON

时间:2015-06-22 22:37:42

标签: python json python-2.7 unicode

我的格式错误的(?)JSON文件如下:

file.json:

{u'results': [{u'status': u'OK', u'time': 199, u'name': u'Macap\xe1'}]}

我尝试使用json.loads()来读取此数据,但它不想接受unicode。 我尝试使用.decode('utf-8')进行解码,但不会将\xe1转换为重音a。

任何关于正确解析这个并在json中解析的魔法的帮助都会很棒。

谢谢!

P.S。我正在使用Python 2.7

1 个答案:

答案 0 :(得分:4)

即使是JSON也不是格式错误,它是一个Python字典文字。解码它的好方法是使用ast.literal_eval(因为这样可以确保它不会包含任何危险的内容):

import ast

txt = r"{u'results': [{u'status': u'OK', u'time': 199, u'name': u'Macap\xe1'}]}"
obj = ast.literal_eval(txt)