将单引号值的字符串字典转换为双引号值

问题描述 投票:0回答:1

给定一个表示为字符串的字典,其中键和值用单引号引起来。我不擅长正则表达式,所以我想知道是否可以将字符串中的键和值转换为双引号。这样做的原因是将字符串解析为 other 中的字典类型以提取键和值对。

下面是说明我的挑战的示例

Initial as string:
{'first_name': 'John', 'age': 89}

Final as string:
{"first_name": "John", "age": 89}

我不知道正则表达式是否可行或任何其他方法。 请帮帮我

python regex string dictionary replace
1个回答
1
投票

虽然您的示例字符串不是有效的 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。]

© www.soinside.com 2019 - 2024. All rights reserved.