python - 如何将文件保存数组中的字符串转换为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())
解决方案
尝试使用
json.load(file_obj)
或者
json.loads(str_obj)
为此,您必须使用导入 JSON
import json
请记住,在文件中写入文本时,您使用双引号 (") 而不是单引号 (')。
这将从文件中加载字符串作为字典/列表对象。希望这可以帮助。欢迎来到堆栈溢出!:)
推荐阅读
- wordpress - 为什么所有自定义帖子类型都显示在“最近的帖子”小部件中?
- hana - HANA 中计算列的元数据
- html - 将 Bookdown 构建为 HTML 会丢失样式格式
- mocha.js - 'npm run coverage' 没有更新 lcov.info 文件
- java - Spring 字段验证未绑定在 BindingResult 中
- java - 尝试将 Spring Boot 应用程序与 mongoDB 连接时出错
- angular - Angular canActivate 从服务中获取更新的变量
- php - 想要使用 php 从 Amazon url 检索产品 ID 和附属标签
- android - 返回多个图像的图像选择器
- r - 使用 cbind 从分组二项式 glm 进行似然计算的问题