У меня есть словарь, который я хочу записать в файл CSV. во время записи строкового значения оно становится плавающим. но мне нужно одно и то же строковое значение в CSV-файле не плавать. любая идея?

mydict={'date':int(20200729),'number':int(123),'code':int(707),'cipher':str('54545417e92')}
print mydict.values()
with open('formatting.csv','ab') as f:
    w=csv.writer(f)
    w.writerow(mydict.keys())
    w.writerow(mydict.values())

enter image description here

0
Zaman Azam 29 Июл 2020 в 23:44

2 ответа

Лучший ответ

Вручную увеличьте ширину столбца, и вы увидите изменения формата.

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

0
DeepSpace 29 Июл 2020 в 20:49

Как сказал DeepSpace, это происходит от того, что делает Excel, а не от того, что делает Python. Но по моему опыту, как только Excel открыл файл и предположил, что ваши данные являются плавающими, вы не сможете вернуть эту точность обратно. Я предлагаю просмотреть ваши необработанные данные, открыв файл .CSV с помощью текстового редактора вместо Excel.

Если вы должны открыть файл в Excel, то есть другой способ сделать это. Откройте пустой документ Excel, затем перейдите на вкладку данных и нажмите «Из текста / CSV». Затем следуйте инструкциям и используйте мастер для импорта ваших данных. Таким образом, вы можете убедиться, что тип данных не изменяется от строки к плавающей.

РЕДАКТИРОВАТЬ - в качестве примечания, я вижу, что вы пометили свой вопрос как «python 3.x», но в своем примере вы используете старый синтаксис python 2 print "a string". Начиная с Python 3.0, вы должны использовать print("a string").

0
Owen 29 Июл 2020 в 21:21