Написание файла CSV с Python

1

Я пытаюсь сохранить в CVS файле некоторую информацию с помощью Python.

Когда я запускаю его, похоже, что он работает, но когда я иду в файл, ничего не выходит

Это мой код:

dic = {"name": "jason", "name": "mike"}
file = "names.csv"
cvs = open(file, "a")
column = "name,name2\n"
cvs.write(column)
for key in dic.keys():
    name = key
    name2 = dic[key]
    fil = name + "," + name2 + "\n"
    cvs.write(fil)
Теги:
python-3.x

3 ответа

0

Во-первых, серьезная проблема - вы не можете иметь один и тот же ключ несколько раз в dict! У вас могут быть {'names': ['Mike', 'Jason'}}, но, как есть, один будет переписан другим. Это может быть частью вашей проблемы.

Во-вторых, в общем, гораздо проще сделать создание csv через pandas, с такими функциями, как pandas.DataFrame.from_dict - путь проще, менее подвержен ошибкам и т.д. - на самом деле я настоятельно рекомендую не писать такие файлы вручную. (Хотя это примерно ВСЕ, мне нравятся панды.)

correctDict = {'names': ['Mike', 'Jason']}
df = pandas.DataFrame.from_dict(correctDict)
df.to_csv('myFile.csv')

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.from_dict.html

0

Просто:

import csv

data = {'name':'jason','name':'mike'}
with open('names.csv', 'w+') as csvf:
    writer = csv.DictWriter(csvf, fieldnames=['name'])
    writer.writeheader()
    for key, value in data.items():
        writer.writerow(value)
0

(это csv, а не cvs. CSV - значение, разделенное запятой, CVS - аптека).

Вы никогда не закрываете файл. Просто поставьте

cvs.close()

в конце вашего кода, и он должен работать так, как вы ожидаете.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню