用单引号(')替换双引号(“)(撇号除外)

时间:2019-02-13 09:10:16

标签: python json regex replace

我的数据集包含无效的json,请参见下面的代码段

{'id': 613, 'name': "new year's eve"}

除单引号外,我想替换所有单引号,例如:年份。因此,上面的字符串应产生有效的json,如:

{"id": 613, "name": "new year's eve"}

我已经尝试在Python中替换一个简单的字符串: string.replace(“'”,“ \”“),但这也会更改撇号,从而导致:

{"id": 613, "name": "new year"s eve"}

是否可以用正则表达式解决此问题,例如全部替换',除非用“ 封装”?

2 个答案:

答案 0 :(得分:0)

您可以尝试

EmployeeHasQuit()

请参见a demo on regex101.com


'(\w+)'\s*: 中:

Python

这产生

import json, re

string = """{'id': 613, 'name': "new year's eve"}"""

rx = re.compile(r"""'(\w+)'\s*:""")
string = rx.sub(r'"\1":', string)
d = json.loads(string)
print(d)

更好:该字符串最初来自何处?

答案 1 :(得分:0)

您可以使用ast模块

例如:

import ast

s = """{'id': 613, 'name': "new year's eve"}"""
d = ast.literal_eval(s)
print(d)