gpt4 book ai didi

python - 值错误: malformed node or string error when parsing lists from a text file

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

我在文件中存储了一些文本,如下所示:

[10, 1575311969.9649343, 'Hot Brew', 10, True, 'No tank', 'Organic Red Helles']
[101, 1575311971.3570273, 'Hot Brew', 10, True, 'No tank', 'Organic Red Helles']

现在,我想将其作为二维列表添加到我的代码中:

batches = [[10, 1575311969.9649343, 'Hot Brew', 10, True, 'No tank', 'Organic Red Helles'],
[101, 1575311971.3570273, 'Hot Brew', 10, True, 'No tank', 'Organic Red Helles']]

我尝试使用代码

from ast import literal_eval

with open('runBatchBackup.txt', 'r') as f:
batches = literal_eval('[' + f.read() + ']')

但这导致了

ValueError: malformed node or string: <_ast.Subscript object at 0x03C72BB0>

如何将文本文件转换为我想要的格式?

最佳答案

您的文件以换行符分隔,但 literal_eval 需要用逗号分隔每个子列表才能对其进行解析。您可以添加对 replace 的调用来执行从换行符到逗号的转换:

batches = literal_eval('[' + f.read().replace('\n', ',') + ']')

结果:

[[10, 1575311969.9649343, 'Hot Brew', 10, True, 'No tank', 'Organic Red Helles'], 
[101, 1575311971.3570273, 'Hot Brew', 10, True, 'No tank', 'Organic Red Helles']]

尽管上面的代码片段清楚地说明了问题,但我建议使用列表理解将 literal_eval 应用于每一行:

batches = [literal_eval(line) for line in f]

关于python - 值错误: malformed node or string error when parsing lists from a text file,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59145292/

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