我有一个文件,其内容采用python列表的形式,如下所示:
['hello','how','are','you','doing','today','2016','10.004']
有没有办法将python文件读回列表对象?而不是使用.read()
并将整个文件作为字符串读取。
我使用它的程序有一个从yahoo finance python模块获取历史股票数据的函数。此函数与使用ast.literal_eval()的函数无关或依赖于该函数。
无论如何,每天晚上收市后我都会收集来自雅虎财经的新批次历史数据,昨晚我遇到了一个错误:simplejson.scanner.jsondecodeerror期待价值。这很奇怪,因为它会为某些公司收集数据,但会为其他公司抛出错误,有时会为同一家公司工作,但一分钟之后就无法运行。在尝试各种事情来调试和解决问题之后,记得最近添加了导入ast,并且认为我应该尝试查看它是否会产生影响,在删除导入后,程序恢复正常工作。
有人知道为什么导入导致问题吗? @Apero为什么最初警告不要使用eval或ast.literal_eval?
答案 0 :(得分:10)
您可以使用ast.literal_eval()
:
import ast
with open('filename.txt', 'r') as f:
mylist = ast.literal_eval(f.read())
答案 1 :(得分:5)
my_list =
import foo; l = foo.my_list
更简单,不是吗? ; - )