gpt4 book ai didi

python - 将字符串转换成字典

转载 作者:太空宇宙 更新时间:2023-11-03 12:15:14 25 4
gpt4 key购买 nike

我知道这看起来是个愚蠢的问题,但无论如何。

我正在尝试将字典的字符串表示形式转换回字典。

我的工作流程如下:

d = {1:2}
s = str(d)

当我这样做时:

dict(s)

我得到:

ValueError: dictionary update sequence element #0 has length 1; 2 is required

当我这样做时:

json.loads(s)

我明白了:

ValueError: Expecting property name: line 1 column 1 (char 1)

如何将其转换回字典?

更新:

我应该提一下,实际数据如下:

{'cell_num': u'', 'home_num': u'16047207276', 'registration_country': u'US', 'registration_ip': u'71.102.221.29', 'last_updated': datetime.datetime(2010, 9, 27, 15, 41, 59), 'address': {'country': u'US', 'state': u'CA', 'zip': u'', 'city': u'Santa Barbara', 'street': u'', 'confirmed': False, 'created': datetime.datetime(2010, 6, 24, 10, 23), 'updated': datetime.datetime(2010, 6, 24, 10, 23)}, 'old_home_num': u'16047207276', 'old_cell_num': u''}

在那种情况下,带有 json.loadsast.literal_eval() 的选项是不合适的。所以我更进一步,尝试用 pickle 标准 python 库反序列化它。

import pickle

pickle.loads(data)

但后来我得到:

KeyError: '{'

最佳答案

如果你想要一个可移植的字符串表示,使用 s = json.dumps(d) 然后可以使用 json.loads(s) 重新加载它

但是,这仅限于与 JSON 兼容的类型。如果你只想在 python 中使用它,最强大的选项是 pickle (小心:永远不要取消选中不受信任的数据!)。

要使用 pickle.loads() 创建可加载的字符串,您需要使用 pickle.dumps() 从原始对象创建它(即就像您使用 json 但使用 pickle 代替)。

但是,如果您已经发布了该字符串,则可以使用 eval(s)将其评估为 python 表达式。不过,这通常是个坏主意,并且使用 repr 仅适用于实际上具有有效 python 代码的 repr 的对象。

关于python - 将字符串转换成字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18962207/

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