给定一个表示为字符串的字典,其中键和值用单引号引起来。我不擅长正则表达式,所以我想知道是否可以将字符串中的键和值转换为双引号。这样做的原因是将字符串解析为 other 中的字典类型以提取键和值对。
下面是说明我的挑战的示例
Initial as string:
{'first_name': 'John', 'age': 89}
Final as string:
{"first_name": "John", "age": 89}
我不知道正则表达式是否可行或任何其他方法。 请帮帮我
虽然您的示例字符串不是有效的 JSON,但它对于 python 字典是有效的;因此,您可以简单地使用 eval
dictStr = '''{'first_name': "John", "age": 89}'''
dictObj = eval(dictStr)
print('dictObj:', type(dictObj), repr(dictObj), '\n')
# import json
jsonStr = json.dumps(eval(dictStr))
print('jsonStr:', type(jsonStr), repr(jsonStr), '\n')
应该打印
dictObj: <class 'dict'> {'first_name': 'John', 'age': 89}
jsonStr: <class 'str'> '{"first_name": "John", "age": 89}'
jsonStr
正是你的标题所要求的,但我认为你的最终目标是
dictObj
,你可能认为你需要
jsonStr
[但在这种情况下你不需要它,因为你可以获得直接字典,需要修复 JSON。]