Python - 从具有多个类别的 csv 文件制作字典

标签 python csv dictionary python-3.x

我想用 python 从 csv 文件制作字典,但我有多个类别。我希望键是 ID 号,值是项目的名称。这是文本文件:

"ID#","name","quantity","price"
"1","hello kitty","4","9999"
"2","rilakkuma","3","999"
"3","keroppi","5","1000"
"4","korilakkuma","6","699"

这是我目前所拥有的:

txt = open("hk.txt","rU")

file_data = txt.read()
lst = []           #first make a list, and then convert it into a dictionary.
for key in file_data:
        k = key.split(",")
        lst.append((k[0],k[1]))

dic = dict(lst)
print(dic)

虽然这只是打印一个空列表。我希望键是 ID#,然后值将是产品的名称。我将制作另一个字典,其中名称作为键,ID# 作为值,但我认为这将是同一件事,但相反。

最佳答案

使用 csv module处理您的数据;它将删除引号并处理拆分:

results = {}

with open('hk.txt', 'r', newline='') as txt:
    reader = csv.reader(txt)
    next(reader, None)  # skip the header line
    for row in reader:
        results[row[0]] = row[1]

对于您的样本输入,这会产生:

{'4': 'korilakkuma', '1': 'hello kitty', '3': 'keroppi', '2': 'rilakkuma'}

关于Python - 从具有多个类别的 csv 文件制作字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17862585/

相关文章:

C++ 从文件中读取双引号

c# - 为 SqlBulkCopy 中的某些列设置常量值

python - 如何将字典中的嵌套 numpy 数组转换为 JSON?

c++ - Qt中如何写字符串的switch语句?

c++ - <Int, int*> 在 C++ 中的映射

python - 我应该如何理解python中的 "Bunch class"?

jquery - AJAX 到 Python 调用打印实际脚本,而不是请求的信息

python - 如何在Python Mockito中正确使用verifyNoUnwantedInteractions()?

python - 如何将两个列表相加形成一个新矩阵

python - 我可以读取使用第一列和该列作为微调器的输入而不重复的 CSV 文件吗?