使用python解析损坏的json中的问题

时间:2016-06-18 08:02:52

标签: python json quotes

我有一个损坏的json,如下所示:

{'a': 'b', 'c': "abcd'efgh ijklm"}

在使用python json.loads之前,我需要做两件事:

  1. \'
  2. 替换双引号内的单引号
  3. 替换所有其他单引号,但\'除了双引号
  4. 我不知道如何做这两个步骤。请帮忙。

1 个答案:

答案 0 :(得分:1)

实际上,您无法使用json.loads函数反序列化字符串,因为该字符串不包含有效的JSON文档。相反,您应该考虑使用ast.literal_eval函数。

演示:

In [25]: import ast

In [26]: with open('inputfile') as f:
   ....:     for d in map(ast.literal_eval, f):
   ....:         print(d)
   ....:         
{'c': "abcd'efgh ijklm", 'a': 'b'}
{'c': "abcdgfgfgg", 'a': 'b'}