Python-文件中的元组列表

Python-文件中的元组列表,python,list,file,tuples,loading,Python,List,File,Tuples,Loading,我已经完成了一些相当密集的计算,但我无法将结果保存在pickle中(递归深度超过),因此我被迫打印所有数据并将其保存在文本文件中 现在有没有什么简单的方法可以把我的文本元组列表转换成。。。python中的元组列表?输出如下所示: [(10, 5), (11, 6), (12, 5), (14, 5), (103360, 7), (16, 6), (102725, 7), (17, 6), (18, 5), (19, 9), (20, 6), ...(it continues for 60MB)]

我已经完成了一些相当密集的计算,但我无法将结果保存在pickle中(递归深度超过),因此我被迫打印所有数据并将其保存在文本文件中

现在有没有什么简单的方法可以把我的文本元组列表转换成。。。python中的元组列表?输出如下所示:

[(10, 5), (11, 6), (12, 5), (14, 5), (103360, 7), (16, 6), (102725, 7), (17, 6), (18, 5), (19, 9), (20, 6), ...(it continues for 60MB)]
您可以使用:


首先,我用
[1:-1]
拆下开始和结束方括号,我用
替换
),
可以通过
进行拆分
,这样就不会被元组中的逗号分割,因为元组前面没有
。在循环内部,我使用
[1:-1]
删除括号,并用逗号分隔。
map
部分是将数值
str
s转换为
int
s,我将它们附加为
元组

使用Wait的可能副本,数据非常平坦。为什么pickle会超过递归深度呢?那个数据示例真的有代表性吗?我必须在我的源代码中包含全部数据,不吗?@KONAKONA不,你从保存的任何文件中读取它to@KONAKONA你的意思是你只想转换存储数据的一个子集吗?好的,因为它都在一行中,我可以读取那一行,将它转换成字符串,并使用ast.literal_eval(),谢谢!
>>> s = '[(10, 5), (11, 6), (12, 5), (14, 5)]'
>>> res = ast.literal_eval(s)
[(10, 5), (11, 6), (12, 5), (14, 5)]
>>> res[0]
(10, 5)
string = "[(10, 5), (11, 6), (12, 5), (14, 5), (103360, 7), (16, 6), (102725, 7), (17, 6), (18, 5), (19, 9), (20, 6)]" # Read it from the file however you want

values = []
for t in string[1:-1].replace("),", ");").split("; "):
    values.append(tuple(map(int, t[1:-1].split(", "))))