Расположите в том же порядке после использования csv.DictReader (файл) - PullRequest
0 голосов
/ 03 февраля 2020

Я пытаюсь преобразовать CSV-файл в словарь для целей расчета и распечатать его точно в том же порядке (например, a, b, c, d et c), как они были в исходном CSV-файле. Я только что узнал и попытался использовать csv.DictReader (файл) , но я понимал, что каждый раз, когда я делал печать, последовательность строк, столбцов постоянно менялась, или я бы сказал, что они случайно запутались. Любое решение для этого или есть какая-то часть, которую я сделал неправильно?

import csv

with open("breast_cancer_v1.csv", 'r') as file:
    csv_file = csv.DictReader(file)
    for row in csv_file:
        print(dict(row))

Я назвал заголовок моего столбца как "a, b, c, d, e, f, h, i, j, k, l, m "внутри моего csv, но последовательность печати запуталась, как показано ниже:

output

enter image description here

обратите внимание на ключи словаря не в порядке, и мои строки также сталкиваются с той же проблемой, если у меня слишком много строк в CSV (например, 100+ строк)

Мои исходные данные CSV выглядит так:

enter image description here

T_T

Ответы [ 2 ]

0 голосов
/ 03 февраля 2020

Или, если вы действительно хотите напечатать его в виде словаря, тогда вы должны дать каждому столбцу имя с опцией fieldnames:

    import csv

    with open("artist.csv", newline='') as file:
      fieldnames = ['first_col', 'sec_col',...,'last_col']
      csv_file = csv.DictReader(file, fieldnames=fieldnames)
        for row in csv_file:
           print(row)

Порядок, в котором вы перечислите имена полей, будет таким же, как они Вы должны удалить исходный заголовок столбца в вашем CSV-файле.

0 голосов
/ 03 февраля 2020

, если вы хотите распечатать по порядку, просто используйте это:

   import csv

   with open("breast_cancer_v1.csv", 'r') as file:
       for row in file:
           print(row)
...