当前位置: 首页 > 面试题库 >

Python-从CSV文件创建字典?

东门新立
2023-03-14
问题内容

我正在尝试从csv文件创建字典。csv文件的第一列包含唯一键,第二列包含值。csv文件的每一行代表字典中的唯一键,值对。我尝试使用csv.DictReaderand csv.DictWriter类,但是我只能弄清楚如何为每一行生成一个新的字典。我要一部字典。这是我尝试使用的代码:

import csv

with open('coors.csv', mode='r') as infile:
    reader = csv.reader(infile)
    with open('coors_new.csv', mode='w') as outfile:
    writer = csv.writer(outfile)
    for rows in reader:
        k = rows[0]
        v = rows[1]
        mydict = {k:v for k, v in rows}
    print(mydict)

当我运行上面的代码时,我得到一个ValueError: too many values to unpack (expected 2)。如何从csv文件创建一个字典?


问题答案:

我相信你正在寻找的语法如下:

with open('coors.csv', mode='r') as infile:
    reader = csv.reader(infile)
    with open('coors_new.csv', mode='w') as outfile:
        writer = csv.writer(outfile)
        mydict = {rows[0]:rows[1] for rows in reader}

或者,对于python <= 2.7.1,你需要:

mydict = dict((rows[0],rows[1]) for rows in reader)


 类似资料:
  • 我有一些代码可以读取一个拼花文件,然后显示它,就像这样: 这工作正常,但我想从输出创建一个CSV文件,即: 我希望创建一个CSV文件,其中包含列标题、逗号分隔的数据和数据。这样地: 我纠结于如何将拼花文件中的结果转换为CSV文件。你能帮助我吗?

  • 问题内容: 我有一个名为“ clients”的Sqlite 3和/或MySQL表。 使用python 2.6,如何创建带有标题的名为Clients100914.csv的csv文件?excel方言… Sql execute:select *仅提供表数据,但是我想要带有标题的完整表。 如何创建记录集以获取表头。表头应该直接来自不是用python编写的sql。 这段代码使我无法打开文件,也没有标题。也无

  • 问题内容: 我想创建一个csv文件,但是当我运行代码时,它返回一个空白页,没有csv文件。我使用PHP5。我使用以下代码: 谢谢! 问题答案: 其空白,因为您正在写信。您应该写到using 代替,还应该发送标头信息以表明它是csv。 例

  • 问题内容: 我试图允许用户下载包含其操作定义的数据的CSV文件。该文件不存在,它是动态创建的。如何在Flask中做到这一点? 问题答案: 使用生成数据并传输响应。使用写入内存缓冲区,而不是生成中间文件。 如果该generate函数需要从current中获取信息request,则应使用修饰stream_with_context,否则您将收到“在外部请求上下文中工作”错误。其他所有内容保持不变。

  • 问题内容: 我正在寻找一个允许我将.csv内容映射到对象的库。 就像是: 然后说像这样: 从给定的CSV: 有谁知道这样的API,或者做类似的事情。我不希望它必须使用注释,我只是希望能够用一行代码和一个预定义的类来加载文件。 问题答案: JSefa允许您注释可在序列化和反序列化过程中使用的Java类。本教程演示了如何与CsvIOFactory类一起使用。 (来自教程)对bean进行注释就像在值列表