s = str(a) > print s {u'service': u-6ren">
gpt4 book ai didi

python - 从无效的 json 字符串加载 python 字典

转载 作者:太空宇宙 更新时间:2023-11-03 16:52:59 26 4
gpt4 key购买 nike

考虑以下 json 对象:

> a = {u'service': u"Lulu's Bakery"}

好。现在让我们打印它:

> s = str(a)
> print s
{u'service': u"Lulu's Bakery"}

问题是:如何巧妙地从该字符串加载 json 对象?

使用 json.loads(s) 的简单方法显然在这里不起作用,因为 s 不是有效的 json 字符串。并且多次手动替换的方法似乎没有足够的吸引力,因为例如我宁愿避免区分 u'service' 中的 u's 部分露露的上下文。

有什么简单的解决方案吗?

最佳答案

使用eval

一些纯粹主义者讨厌使用 eval ,并且在不受信任的输入上运行是不安全的(想象一下,如果一些邪恶的人将os.system("rm -rf *")放入带有字符串的文件中。评估会删除您的文件)。但这是 eval 的正确用例。 eval会将你的字符串转换回 python 对象。如果您想要该 python 对象的 JSON,则可以进一步使用 json.dumps

In [1]: s = '''{u'service': u"Lulu's Bakery"}'''In [2]: sOut[2]: '{u\'service\': u"Lulu\'s Bakery"}'In [3]: x = eval(s)In [4]: xOut[4]: {u'service': u"Lulu's Bakery"}In [5]: import jsonIn [6]: json.dumps(x)Out[6]: '{"service": "Lulu\'s Bakery"}'

关于python - 从无效的 json 字符串加载 python 字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35710365/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com