【问题标题】:Python json.loads for utf-8用于 utf-8 的 Python json.loads
【发布时间】:2015-06-25 18:33:22
【问题描述】:

我有一个(无效的)json 文件,它是 UTF-8 格式

json的粗略是:

{u'key': {u'key2': u'value'}, ...., u'key3' : u'value'}

执行简单的 python json.loads() 会导致以下错误:

ValueError: Expecting property name: line 1 column 2 (char 1)

根据 SO 上的一些相关答案,我尝试将其更改为 unicode:

line = unicode(line,'utf-8')
data = json.loads(line)


ValueError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

我能想到的一个解决方案是用双引号替换所有单引号并继续,但我在想 - 如果有更简单的解决方案来解析文件以获取 python dict?

【问题讨论】:

  • 我建议您通过 JSON Validator 运行您的 JSON 数据,您也可以通过 Google 搜索其他类型的数据。
  • 检查源字符串中是否存在 \r\n 以及@joe-cheng refer

标签: python json utf-8


【解决方案1】:

这是不是 JSON!它看起来像是通过repr 进行的python 序列化,您可以使用ast.literal_eval(node_or_string)ast-module 加载它。

【讨论】:

  • ast.literal_eval()eval() 安全得多。
猜你喜欢
  • 1970-01-01
  • 2017-05-07
  • 2012-07-30
  • 2015-12-18
  • 2016-06-05
  • 2016-05-03
  • 2018-10-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多