我正在嘗試將以下字符串轉換為字典:"{'key1': 0, 'key2': defaultdict(<class 'int'>, {'total': 9, 'semcor': 9})}"我嘗試使用來自ast的literal_eval和來自json的json.loads,但是他們都不能轉換它。對于 JSON,我知道它沒有 json 結構,但是我不完全理解為什么literal_eval 不起作用。有人可以告訴我是否可以這樣做嗎?
1 回答

BIG陽
TA貢獻1859條經驗 獲得超6個贊
解析它的一種快速而骯臟的方法是<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))
這將返回:
{'key1': 0, 'key2': defaultdict(int, {'total': 9, 'semcor': 9})}
添加回答
舉報
0/150
提交
取消