CSV中的defaultdict /元组的Python列表

时间:2018-10-29 08:13:39

标签: python dictionary

我找不到如何将词典的当前列表保存到CSV文件中。

以下是数据的格式:

{'8714789828558': ('5,51', 'A'), '3326100000182': ('15,00', "B"), '3286010016683': ('3,93', 'C'), (...) }

我想要拥有的是: 编号,价格,字母 (...)

这是我的代码:

with open('to_db.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile, delimiter="'")
writer.writerow(['ean', 'prices', 'desc'])
for row in minitems:
    writer.writerow(row)

我尝试了几种方法,但结果如下:

ean'prices'letter

8'7'1'4'7'8'9'8'2'8'5'5'8

3'3'2'6'1'0'0'0'0'0'1'8'2

每个ean号都用撇号分隔,并且没有价格或字母。

如果您发现我不熟悉字典的错误在哪里,请先谢谢您。

2 个答案:

答案 0 :(得分:1)

使用dict.items来迭代字典中的键和值。

例如:

with open('to_db.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter="'")
    writer.writerow(['ean', 'prices', 'desc'])
    for k,v in minitems.items():
        writer.writerow([k] + list(v))

答案 1 :(得分:0)

我认为您可能想要这样的东西。

minitems = {'8714789828558': ('5,51', 'A'), '3326100000182': ('15,00', "B")}

# list_of_rows = []
for x in minitems:
  row_list = []
  row_list.append(x)
  for y in minitems[x]:
    row_list.append(y)
  writer.writerow(row_list)
# list_of_rows.append(row_list)

# print(list_of_rows)