Python список defaultdict / кортежей в CSV - PullRequest
0 голосов
/ 29 октября 2018

Не могу найти, как сохранить текущий список диктов в файл 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 голосов
/ 29 октября 2018

Я думаю, вы, вероятно, хотите что-то подобное.

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)
0 голосов
/ 29 октября 2018

Используйте dict.items для итерации ключа и значения в dict.

Ex:

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))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...