【问题标题】:How do I create a dictionary from a csv using python如何使用 python 从 csv 创建字典
【发布时间】:2021-08-09 13:01:16
【问题描述】:

我有一个格式为 csv 的文件:

拼写、发音、音节、标签
头,H-EH-D,1,NSING
瓶子, B-O-T-UH-L, 2, NSING
秋季,F-AW-L,1,VBASE

我想将其转换为以下形式的字典: 'head' : ['H-EH-D', '1', 'NSING']

【问题讨论】:

  • 你不能有一个看起来像这样的字典条目。我建议:- 'head': 'H-EH-D, 1, NSING' 或 'head': ['H-EH-D', '1', 'NSING']
  • @DarkKnight 根据您的建议进行了编辑,感谢 alfinkel24,但它似乎并不完全符合我的要求。
  • 请编辑您的问题以显示您尝试过的代码,我们可以进一步帮助您
  • 我尝试了一些方法,例如使用 csv.DictReader 模块和创建字典格式的非类型对象,但它们都是单独的实现。我想要一个全新的实现,如果这有意义的话,因为它们都没有完全满足我的需求。

标签: python csv dictionary


【解决方案1】:

(使用 csv 库,感谢@Serge Ballesta 的建议)

此解决方案可能适合您:

import csv
result = {}
# open file
with open("file.csv", "r") as csv_file:
    parsed_csv = csv.reader(csv_file) # parse data with csv library
    next(parsed_csv) # skip first line
    # store line in dictionnary
    for line in parsed_csv:
        result[line[0]] = line[1:]
print(result)

此代码将打印:

{"head": ["H-EH-D", "1", "NSING"], "bottle": ["B-O-T-UH-L", "2", "NSING"], "fall ": ["F-AW-L", "1", "VBASE"]}

你的例子。

【讨论】:

  • 叹息...,你为什么要手动分割行,而不是使用标准库中的csv 模块?
  • 谢谢,这很有帮助。
【解决方案2】:

我创建了只有两个输入的 test.csv 文件,如下所示:

head,H-EH-D,1,NSING
bottle,B-O-T-UH-L,2,NSING

我的代码:

import csv

my_dict = {}
with open('test.csv', mode='r') as infile:
    reader = csv.reader(infile)
    for row in reader:
        key, value = row[0], row[1:]
        # my_dict={rows[0]:rows[1:] for rows in reader}
        my_dict[key] = value

print(my_dict)

以上代码的输出如下:

{'head': ['H-EH-D', '1', 'NSING'], 'bottle': ['B-O-T-UH-L', '2', 'NSING']}

【讨论】:

    猜你喜欢
    • 2018-04-07
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2021-03-25
    • 2018-09-26
    相关资源
    最近更新 更多