为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

桃花长相依 2021-09-14 16:46:32
我正在尝试将以下字符串转换为字典:"{'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})}


查看完整回答
反对 回复 2021-09-14
  • 1 回答
  • 0 关注
  • 194 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号