Как мы можем экспортировать список контактов в качестве значения в CSV-файл - PullRequest
0 голосов
/ 22 апреля 2020

Предположим, это формат ввода ...

    {'ID':[1,2,3,4,5,6,7,8,9,10],
     'Name':['A','B','C','D','E','F','G'],
     Flag:['True'],
     City:'',

}

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

ID   Name  Flag  City
1      A   True   ''
2      B          ''
3      c     
4      D
5      E

и так далее ... .Как мы можем это сделать ..? Спасибо заранее PF: Я получаю формат ввода от django моделей

Ответы [ 3 ]

0 голосов
/ 22 апреля 2020

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

Предположим, что это так, например,

d = {'ID':[1,2,3,4,5,6,7],
 'Name':['A','B','C','D','E','F','G'],
 'Flag':[True, False, False, False, False, False, False],
 'City':['']*7,
}

Теперь вы можете построить фрейм данных

import pandas as pd

df = pd.DataFrame.from_dict(d)

и преобразовать его в CSV

df.to_csv('/tmp/test.csv', index=False)
0 голосов
/ 22 апреля 2020

Если вы не совсем ищете CSV, как вы упомянули, и можете использовать NaN s, попробуйте использовать pandas.

import pandas as pd
d = {
    "ID": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
    "Name": ["A", "B", "C", "D", "E", "F", "G"],
    "Flag": ["True"],
    "City": "",
}
df = pd.DataFrame(dict([(k, pd.Series(v)) for k, v in d.items()]))

df.to_csv("1.csv",index=False)

Это заполняет недоступные элементы с NaN.

Выход:

   ID Name  Flag City
0   1    A  True     
1   2    B   NaN  NaN
2   3    C   NaN  NaN
3   4    D   NaN  NaN
4   5    E   NaN  NaN
5   6    F   NaN  NaN
6   7    G   NaN  NaN
7   8  NaN   NaN  NaN
8   9  NaN   NaN  NaN
9  10  NaN   NaN  NaN
0 голосов
/ 22 апреля 2020
import csv
columns = list(dict.keys())

try:
    with open(output_file, 'w') as csvfile:
        writer = csv.DictWriter(csvfile, fieldnames=columns)
        writer.writeheader()
        for data in dict:
            writer.writerow(data)
except IOError:
    print("I/O error")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...