python - 将文件中的数据读入字典
问题描述
假设我有一个包含每一行信息的文件,并且每一行我想在字典中转换。在字典中将有一个字符串、两个整数和两个列表。有点像这样: Q1 = { "string" : "name", "integer1" : 1, "integer2" : 2, "list1" : [a,b,c,d], "list2": [] } 现在文件可以是 txt 文件,也可以不是。假设它是一个 txt 文件,每一行都会提供一个字典。我是编写文件的人,所以我可以以任何我想要的格式拥有它。我以为file.txt的每一行都是这种格式:name,1,2,(a/b/c), () 所以第一件事是字符串,第二件事是integer1,然后是integer2,list1和list2。字典的每个元素用逗号分隔,列表中的元素在括号内并用斜杠(“/”)分隔。显然,如果您认为 file.txt 应该如何有更好的主意,请告诉我 :) 我希望它是动态的第一个列表。这意味着某些行可能在括号 () 内包含更多字符,而第二个列表我希望它始终为空,因为我稍后在我的代码中将内容放在那里。每行都是一个字典,每个字典都是我要创建的列表中的一个元素。所以我想要一个字典列表。这意味着某些行可能在括号 () 内包含更多字符,而第二个列表我希望它始终为空,因为我稍后在我的代码中将内容放在那里。每行都是一个字典,每个字典都是我要创建的列表中的一个元素。所以我想要一个字典列表。这意味着某些行可能在括号 () 内包含更多字符,而第二个列表我希望它始终为空,因为我稍后在我的代码中将内容放在那里。每行都是一个字典,每个字典都是我要创建的列表中的一个元素。所以我想要一个字典列表。
我试图打开一个文件并使用拆分功能,但 txt 文件的格式比我想象的要复杂,并且从来没有读取文件并将其保存到字典列表中
#the file.txt should look like this:
name1,5,6,(a1/a2/a3), ()
name2,7,8,(a2/a3/a4/a5), ()
#the python code i tried:
def init():
myList=[]
with open("file.txt") as f:
for line in f:
d={}
d = dict(line.strip().split(',', 4))
myList[line]=d
return(myList)
list=[]
list=init();
解决方案
检查这个......不使用任何包。
with open("test.txt") as f:
lines = [ line.strip().split(",") for line in f ]
lines = [{
"string": line[0],
"integer1": int(line[1]),
"integer2": int(line[2]),
"list1": [l for l in line[3].strip("()").split("/")],
"list2": [l for l in line[4].strip("()").split("/")],
} for line in lines ]
print(lines)
推荐阅读
- python - 对相同大小的图像进行逐像素比较,以找到每个像素最常见的颜色
- deep-learning - pytorch 在 10 个小批量后修复 gpu 内存泄漏
- microsoft-cognitive - 认知服务语音容器:无法下载自定义模型
- laravel - 如何在 laravel 中进行无密码身份验证
- graphql - 在查询结果中捕获 graql apollo 查询执行时间
- awk - 需要在第一次出现模式时提取文本
- android-intent - Android:如何获得在应用程序外部存储的特定文件夹中打开文件选择器的意图?
- java - 使用 Jackson 反序列化 @JsonUnwrapped Optional<> 字段
- r - 展开开始日期和退出日期之间的行并计算 R 中的天数
- django - 配置不当:加载 psycopg2 模块时出错:没有名为“psycopg2”的模块