我需要解析的一个json文件似乎被编码,代码失败并出现错误: ValueError :期望用双引号括起来的属性名称:第2行第3列(字符4)
我的问题是,如何转换/加载json?
json中的单引号或双引号会有所不同吗?
查找/替换单引号和双引号以及Unicode字符u
以解析json是一个很好的解决方案吗?
JSON:
{
'data': [
{'ad_id': u'372900', 'adset_id': u'72900', 'campaign_id': u'363200', 'created_time': u'2016-03-08'},
{'ad_id': u'372900', 'adset_id': u'72900', 'campaign_id': u'363200', 'created_time': u'2016-03-08'}
]
}
代码snipet:
import json
import pprint
with open('leads.json') as data_file:
data = json.load(data_file)
pprint(data)
答案 0 :(得分:4)
问题是json期望双引号包围字符串。你有单引号(和python unicode标记,例如u'372900'
)。所以你的文件不是有效的json。你仍然可以解析它。对文件内容尝试ast.literal_eval
,看看是否有效。
import ast
with open('leads.json') as data_file:
data = ast.literal_eval(data_file.read())