关于 python:python – 解析编码的 json 文件 – 期望用双引号括起来的属性名称

python - parse encoded json file - Expecting property name enclosed in double quotes

我需要解析的一个 json 文件似乎已编码,并且代码失败并出现错误:
ValueError:期望用双引号括起来的属性名称:第 2 行第 3 列(字符 4)

我的问题是,如何转换/加载 json?
json 中的单引号或双引号有区别吗?
查找/替换单引号到双引号和 Unicode 字符 u 以解析 json 是一个很好的解决方案吗?

json:

1
2
3
4
5
6
  {
      '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'}
    ]
  }

代码片段:

1
2
3
4
5
import json
import pprint
with open('leads.json') as data_file:
       data = json.load(data_file)
pprint(data)


问题在于 json 需要双引号将字符串括起来。您有单引号(和 python unicode 标记,例如 u'372900')。所以你的文件不是有效的json。不过,您仍然可以解析它。在文件内容上尝试 ast.literal_eval 看看是否有效。

1
2
3
import ast
with open('leads.json') as data_file:
   data = ast.literal_eval(data_file.read())