gpt4 book ai didi

python - 解析 defaultdict 字符串

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

我用一个简单的打印命令转储了多个 defaultdict,如下所示:

defaultdict(<type 'list'>, {'actual': [20000.0, 19484.0, 19420.0], 'gold': [20000.0, 19484.0, 19464.0]})

有没有我可以用来检索它们的标准解析器?我知道我应该使用 pickle,但是生成这些 defaultdict 的代码非常慢,我想避免重新运行它。

最佳答案

如果你的 defaultdict 的类型总是 <type 'list'> ,您可以使用以下内容:

from collections import defaultdict

s = """
defaultdict(<type 'list'>, {'actual': [20000.0, 19484.0, 19420.0], 'gold': [20000.0, 19484.0, 19464.0]})
"""
data = eval(s.replace("<type 'list'>", 'list'))

人们会告诉你 eval()是不安全和邪恶的,但是如果有人试图将有害代码注入(inject)到您转储的数据中,他们可能会很容易地编辑您的源代码。如果您从中获取此数据的文本文件比您的源代码更易于访问,那么您可能不想使用此方法。

如果您的 defaultdict 有多种类型,但它们都是内置类型(或易于在 repr 和类型名称之间转换),那么您仍然可以使用此方法进行多次替换,例如:

for rep, typ in ((repr(list), 'list'), (repr(dict), 'dict')):
s = s.replace(rep, typ)
data = eval(s)

关于python - 解析 defaultdict 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11001471/

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