首页 > 解决方案 > 如何将文件保存数组中的字符串转换为python中的数组对象?

问题描述

我通过python将两个二维列表保存到一个文件中,现在我想将此字符串恢复为两个列表,但不知道如何在没有大量混乱拆分的情况下做好这一点。这个问题有什么功能吗?

文件 (lists.txt) 如下所示:

[['someting1', 'someting2', 'someting3', 'someting4'], ['someting else1', 'someting else2', 'someting else3', 'someting else4']]
[['different1', 'different2', 'different3'], ['wow is this different1', 'wow is this different2', 'wow is this different3']]

这应该转换为两个二维列表,结果可能如下所示

print(listForLine1[1][1]) >> 'someting else2'
print(listForLine1[0][2]) >> 'different3'

谢谢 vimu

编辑:

我发现将列表保存为文本并不是一个好主意,因为像 ' 和 " 这样的特殊字符可能会导致将该文本再次转换回列表时变得复杂。

一个更好的解决方案是使用 pandas 数据框并将其保存到 csv 中,以后可以使用 pandas 重新打开。

例子:

import pandas as pd

dataToAdd = [["test","test"]["test","test"]]
df = pd.DataFrame(data=dataToAdd)
file = open("filetowriteto", 'w+')
file.write(df.to_csv())

标签: pythonstringlist

解决方案


尝试使用

json.load(file_obj)

或者

json.loads(str_obj)

为此,您必须使用导入 JSON

import json

请记住,在文件中写入文本时,您使用双引号 (") 而不是单引号 (')。

这将从文件中加载字符串作为字典/列表对象。希望这可以帮助。欢迎来到堆栈溢出!:)


推荐阅读