str 转 dict 的问题

2019-08-15 12:00:22 +08:00
 BryceBu

现有 str: {a: {b: '值 1', c: 0, d: '值 2', e: '1', f: [1,2,3]}

好像因为其中的 key 都没有引号,我用 eval() 和 ast.literal_eval() 都转换失败了

1582 次点击
所在节点    Python
4 条回复
love
2019-08-15 12:21:40 +08:00
这不是 json 的变种吗,用 json5 之类的库可以解析
wuwukai007
2019-08-15 16:09:22 +08:00
pip install demjson
demjson.decode(xxx)
lmingzhi08
2019-08-15 17:12:04 +08:00
# 或者使用正则
import re
astr = '''{a: {b: '值 1', c: 0, d: '值 2', e: '1', f:[1,2,3]}}'''
eval(re.sub(r'\s*(\w+)\s*:', r"'\1':", astr))
# {'a': {'b': '值 1', 'c': 0, 'd': '值 2', 'e': '1', 'f': [1, 2, 3]}}

import demjson
demjson.decode(astr)
BryceBu
2019-08-16 15:38:28 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/592072

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX