У меня есть словарь, который я хочу записать в файл 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())
2 ответа
Вручную увеличьте ширину столбца, и вы увидите изменения формата.
Поскольку вы пишете CSV-файл (который, в отличие от xlsx, не содержит своих собственных стилей и форматирования), он не связан с Python и Python ничего не может сделать, чтобы заставить Excel использовать определенный формат.
Как сказал DeepSpace, это происходит от того, что делает Excel, а не от того, что делает Python. Но по моему опыту, как только Excel открыл файл и предположил, что ваши данные являются плавающими, вы не сможете вернуть эту точность обратно. Я предлагаю просмотреть ваши необработанные данные, открыв файл .CSV с помощью текстового редактора вместо Excel.
Если вы должны открыть файл в Excel, то есть другой способ сделать это. Откройте пустой документ Excel, затем перейдите на вкладку данных и нажмите «Из текста / CSV». Затем следуйте инструкциям и используйте мастер для импорта ваших данных. Таким образом, вы можете убедиться, что тип данных не изменяется от строки к плавающей.
РЕДАКТИРОВАТЬ - в качестве примечания, я вижу, что вы пометили свой вопрос как «python 3.x», но в своем примере вы используете старый синтаксис python 2 print "a string"
. Начиная с Python 3.0, вы должны использовать print("a string")
.
Похожие вопросы
Новые вопросы
python-3.x
По вопросам программирования Python, относящегося к версии языка 3+. Используйте более общий тег [python] для всех вопросов Python и добавляйте его только в том случае, если ваш вопрос зависит от версии. Используйте теги [python-2.x] для вопросов Python 2.