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

时间:2016-03-10 21:08:36

标签: python json unicode encode

我需要解析的一个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)

1 个答案:

答案 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())