- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想将 Python 字典列表写入文件中。但是,我需要字典(以及其中的列表)保留字典,即当我加载文件进行处理时,我希望它们使用字典而不必使用字符串。
这是我将数据写入字符串的示例代码,有没有办法保留原始Python数据结构(在实际代码中,列表数据有数百个字典,每个字典可能有数百个列表作为值)。由于多种原因(其中之一是文件需要人类可读),我无法简单地 pickle 数据。
import csv
import pandas as pd
def write_csv_file(data, iteration):
with open('%s.csv' % 'name', 'wb') as data_csv:
writer_data = csv.writer(data_csv, delimiter=',')
for d in data:
writer_data.writerow([iteration] + [d])
data = [{'a':1, 'b':2}, {'e':[1], 'f':[2,10]}]
iteration = 1
write_csv_file(data, iteration)
目前我使用 pandas 按以下方式读取数据文件来处理数据。
d = pd.read_csv('name.csv')
d = pd.DataFrame(d)
最佳答案
只需使用 pickle
而不是 CSV 将数据写入文件 https://docs.python.org/3/library/pickle.html
import pickle
def write_csv_file(data):
with open('%s.pickle' % 'name', 'wb') as data_file:
pickle.dump(data, data_file)
Pickle 将正确序列化并恢复大量数据类型,包括开箱即用的日期时间和大多数用户定义的类。
但是,如果您需要使用第三方工具手动编辑文件,或者希望其易于人类阅读,那么它可能不是最佳选择。
如果您只需要数字、无、 bool 值、列表和字典,并且更喜欢人类可读的文本文件,那么 JSON 可能是一个不错的选择。 Python 的 json
模块使用与 picle 相同的接口(interface),通过 dump
和 load
可调用函数来写入和读取文件。在上面的代码片段中,只需将 pickle
替换为 json
,它就可以与规定的数据类型相同地工作。此外,检查文档,以便 json 序列化输出用良好的缩进填充,以便真正可读:https://docs.python.org/3/library/json.html
关于python - 如何将Python字典写入文件而不使其成为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47910532/
我是一名优秀的程序员,十分优秀!