如何将具有默认值的字典字符串转换为实际的字典

我正在尝试将以下字符串转换为字典:

"{'key1': 0, 'key2': defaultdict(<class 'int'>, {'total': 9, 'semcor': 9})}"

我尝试使用来自ast的literal_eval和来自json的json.loads,但是他们都不能转换它。对于 JSON,我知道它没有 json 结构,但是我不完全理解为什么literal_eval 不起作用。

有人可以告诉我是否可以这样做吗?


桃花长相依
浏览 195回答 1
1回答

BIG阳

解析它的一种快速而肮脏的方法是<class 'int'>用实际的类名替换表示法,然后eval是字符串:from collections import defaultdictimport res = '''"{'key1': 0, 'key2': defaultdict(<class 'int'>, {'total': 9, 'semcor': 9})}"'''eval(re.sub(r"<class '(\w+)'>", r'\1', s))这将返回:{'key1': 0, 'key2': defaultdict(int, {'total': 9, 'semcor': 9})}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python