编辑:我添加了一些示例数据。尽管它是有效的val
,但我希望能够使用单引号等。而且我也不想更改源格式。
我知道以下内容是个坏主意,但是建议使用什么方式读取存储为列表列表的数据,请避免使用JSON
?
eval
样本数据:
with open("data.txt") as fh:
recipes = eval(fh.read())
for recipe in recipes:
result, ingredient1, ingredient2 = recipe
print(result, ingredient1, ingredient2)
答案 0 :(得分:2)
实际上,这取决于您的输入,但是根据您的问题,我假设有两种情况。
1)该文件包含有效的JSON,因此您可以使用内置的json
加载它:
import json
with open("data.txt") as fh:
recipes = json.load(fh)
for recipe in recipes:
result, ingredient1, ingredient2 = recipe
print(result, ingredient1, ingredient2)
2)该文件包含有效的python列表,但不包含有效的json(单引号,换行符等)。那么ast.literal_eval
是您所需要的
import ast
with open("data.txt") as fh:
recipes = ast.literal_eval(fh.read())
for recipe in recipes:
result, ingredient1, ingredient2 = recipe
print(result, ingredient1, ingredient2)