【问题标题】:write key and value from dictionary to csv with python使用python将字典中的键和值写入csv
【发布时间】:2021-05-19 14:18:13
【问题描述】:

我有一个字典,有两个键是“text1”和“text2”,特征是键“text1”有一个重复的字符“A”,但是当我出现“A”两次之间的元素数量可以改变有时更新字典“数据”。我想在 csv 中编写一个标题行,其中所有值从“A”到下一个“A”之前的值,并且“text2”中的值将与标题中的列匹配,如下 csv 中的预期结果:

import csv
data={
    "text1":("A","mouse","cat","A","mouse","cat","A","mouse","cat"),
    "text2":(1,2,3,4,5,6,7,8,9)
}


with open("result.csv","w") as f:
    writer=csv.writer(f,delimiter=',',lineterminator='\n')
    writer_inline=csv.writer(f,delimiter=',',lineterminator=',')
    for i in range(0,len(data["text1"])):
        writer_inline.writerow([data["text1"][i]])
        if data["text1"][i]=="A" and i>1:
            continue

with open("result.csv","r") as f:
    print(f.read())

【问题讨论】:

  • 您的问题是什么?你的代码不工作吗?

标签: python csv dictionary


【解决方案1】:

要从 data 字典中写入 csv 文件,您可以使用以下示例:

import csv

data = {
    "text1": ("A", "mouse", "cat", "A", "mouse", "cat", "A", "mouse", "cat"),
    "text2": (1, 2, 3, 4, 5, 6, 7, 8, 9),
}

tmp = {}
for k, v in zip(data["text1"], data["text2"]):
    tmp.setdefault(k, []).append(v)

with open("result.csv", "w") as f_out:
    writer = csv.writer(f_out)
    writer.writerow(tmp.keys())
    writer.writerows(zip(*tmp.values()))

创建result.csv:

A,mouse,cat
1,2,3
4,5,6
7,8,9

截图:

【讨论】:

  • 非常感谢,它有效!让我研究一下“zip”,这是我第一次面对
  • 嗨,Andrej,顺便说一句,如果你有多个“v”,你能分享一下你的处理方式吗:for k, v1,v2,v3,v4 in zip(data["text1"], data[ "text2"]): tmp.setdefault(k, []).append([v1,v2,v3,v4])
猜你喜欢
  • 1970-01-01
  • 2012-11-19
  • 2018-06-17
  • 1970-01-01
  • 2012-11-04
  • 2021-05-15
  • 1970-01-01
  • 2021-06-15
  • 1970-01-01
相关资源
最近更新 更多