gpt4 book ai didi

python - 在 python 中使用 csv.DictWriter 写入 csv 时添加列(带有值)

转载 作者:行者123 更新时间:2023-12-01 01:38:12 24 4
gpt4 key购买 nike

我有一个 yml 文件如下:

Stocks:
- name: shop1
apples: 100
mangoes: 200

- name: shop2
apples: 20
mangoes: 50
bananas: 100
garbage: 'something'

我想创建一个 tsv(或 csv 或 pandas 数据框)文件,如下所示:

name    category  apples   mangoes   bananas
shop1 fruits 100 200 0
shop2 fruits 20 50 100

我目前的代码如下:

import yaml, csv

csv_columns = ['name','apples','mangoes','bananas', 'category']

with open('fruits.yml', 'r') as f:
doc = yaml.load(f)


csv_file = "somename.csv"
try:
with open(csv_file, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_columns, extrasaction='ignore')
writer.writeheader()
for item in doc["Stocks"]:
item.update( {"category":"fruits"})
for data in doc["Stocks"]:
writer.writerow(data)
except IOError:
print("I/O error")

工作正常,只是我不知道正确或优雅的方式来添加在行上重复相同值的列category。该值实际上是 yaml 文件的名称。

最佳答案

您可以在编写数据行时使用列表理解,如下所示。

for data in doc["websites"]:
writer.writerow([data[0], "fruits"]+data[1:])

关于python - 在 python 中使用 csv.DictWriter 写入 csv 时添加列(带有值),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52183696/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com