从文件中读取值并将它们存储在字典中

时间:2021-01-12 05:11:28

标签: python list dictionary

我想编写一个函数 read_file() 来读取文件中的值并将数据存储在字典中。字典看起来像这样:

product = {'d01':['pencil', 5], 'd02':['highlighter', 7], 'd03':['sharpener', 10]....}

文件中的项目是什么样的:

输入:

d={}
file=r"C:\Users\Public\Documents\Folder\products.dat"
with open(file,'r') as f:
    for items in f:
       print(items)

结果:

d01,pencil,5
d02,highlighter,7
d03,sharpener, 10
d04,pen,3

这是我的代码:

def read_file():
 d={}
 file=r"C:\Users\Public\Documents\Folder\products.dat"
 with open(file,'r') as f:
    for items in f:
       stuff = items.split(",")
       quantity = int(stuff[2].rstrip())
       a = stuff[0]
       b = [stuff[1], quantity]
       d = {a:b}
       print(d)
read_file()

目前我得到的结果:

{'d01': ['pencil', 5]}
{'d02': ['highlighter', 7]}
{'d03': ['sharpener', 10]}
{'d04': ['pen', 3]}

如何实现上述结果?

2 个答案:

答案 0 :(得分:2)

不要为每一行创建一个新字典,在同一个字典中添加一个元素。

改变

d = {a:b}

d[a] = b

并在循环完成后放置 print(d),而不是在循环内。

答案 1 :(得分:0)

读取一个 csv 文件并将其解析为列表字典,使用每行的第一项作为键,使用每行的其余项作为值列表:

import csv
def parse(csvfilename):
    dic = {}
    with open(csvfilename, "r") as csvfile
        csvreader = csv.reader(csvfile, skipinitialspace=True)
        for row in csvreader:
            table[row[0]] = row[1:]
    return dic

enter image description here