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

2024-10-02 20:42:11 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我试着用ast的文字评估json.loads但是他们都不能转换它。对于JSON,我知道它没有JSON结构,但是我不完全理解为什么literal_eval不起作用。在

有人能告诉我有没有可能?在


Tags: 字符串jsonast结构dictclassinttotal
1条回答
网友
1楼 · 发布于 2024-10-02 20:42:11

解析它的一种快速而肮脏的方法是用实际类名替换<class 'int'>符号,然后eval字符串:

from collections import defaultdict
import re
s = '''"{'key1': 0, 'key2': defaultdict(<class 'int'>, {'total': 9, 'semcor': 9})}"'''
eval(re.sub(r"<class '(\w+)'>", r'\1', s))

这将返回:

^{pr2}$

相关问题 更多 >