python - 如何从给定的 txt 文件创建字典?

标签 python dictionary

我有一个由用户名和密码组成的文本文件,用逗号分隔,我需要将其转换为如下字典:

userData = [{'username': 'something@test.com', 'password': 'test123'},
            {'username': 'somethingelse@test.com', 'password': 'test1234'},
            {'username': 'somethingmore@test.com', 'password': 'test123'},
            ]

该文件如下所示:

something@test.com,test123
somethingelse@test.com,test1234
somethingmore@test.com,test123

我尝试了以下操作,但它只返回文本文件的最后一行,因此我假设每行都会覆盖字典。

file = open('username.txt', 'r')
userData = {}
userData['username'] = ''
userData['password'] = ''

for line in file:
   x = line.split(',')
   un = x[0]
   pw = x[1]
   userData['username']=un
   userData['password']=pw

我该怎么做才能获得正确的输出?

最佳答案

您想要一个字典列表,但您只创建一个每次在 for 循环中都会修改的字典。您必须为每一行创建另一个字典并将其存储在列表中。
试试这个:

file = open('username.txt', 'r')
userDataList = []

for line in file:
   x = line.split(',')
   userData = {}
   userData['username'] = x[0]
   userData['password'] = x[1]
   userDataList.append(userData)

关于python - 如何从给定的 txt 文件创建字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41863511/

相关文章:

python - 如何按顺序删除 Pandas 数据框中的特定值?

ios - SWIFT 访问嵌套字典

python - 需要对每个键及其值以及其他所有键及其值执行一个函数,并记录结果

python - 调整图像大小时 PIL "ValueError: image has wrong mode"

python - 方法类似于函数中的参数

python - 使用 numpy 将图像分成 channel

python - 类中的生成器表达式未产生我期望的输出

java - 当我打印 map 数据时,为什么我总是按排序顺序排列?

c++ - 递归STL映射

python - 将 python 3.x 字典保存到 JSON