Я пытаюсь отсортировать словарь по ключу, а также по значению для создания выходного CSV-файла, у меня возникают проблемы с получением нужного выходного файла.
Я пытался сортировать ключи отдельно и список значений отдельно, но при выводе в файл пары перепутались.
data = {}
with open(filename, mode = 'r') as f:
reader = csv.reader(f, delimiter = ',')
for n, row in enumerate(reader):
if not n:
continue
category, value = row
if category not in data:
data[category] = set()
data[category].add((value))
columnNames = sorted(data.keys())
columnValues = []
for value in data.values():
columnValues.append(sorted(value))
print(columnValues)
with open('sorteddata.csv', 'w') as outfile:
writer = csv.writer(outfile, delimiter = ',')
writer.writerow(columnNames)
writer.writerows(zip_longest(*columnValues))
Если вводится {'number': {54, 1, 95, 78, 85, 87}}, 'name': {'bob', 'steve', 'alex'}, 'color': { 'blue', 'yellow', 'black'}} выходные данные должны быть {'color': {'black', 'blue', 'yellow'}, 'name': {'alex', 'bob', ' steve '},' number ': {1, 54, 78, 85, 87, 94}}
Вместо этого я получаю вывод, который выглядит как {'color': {'alex', 'bob', 'steve'}, 'name': {'black', 'blue', 'yellow'}, 'number ': {1, 54, 78, 85, 87, 94}} где значения цвета и имени меняются местами, но в правильном порядке.