use*_*925 3 python csv dictionary pickle jsonpickle
我想在一个文件中写一个Python字典列表.但是,我需要字典(和其中的列表)保持字典,即当我加载文件进行处理时,我希望它们使用字典而不必使用字符串.
这是我的示例代码,它将数据写为字符串,有没有办法保留原始Python数据结构(在实际代码中,列表数据有数百个字典,每个字典可能有数百个列表作为值).由于多种原因(其中一个是文件需要人类可读),我不能简单地腌制数据.
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)
Run Code Online (Sandbox Code Playgroud)
目前,我使用pandas以下列方式读取数据文件以处理数据.
d = pd.read_csv('name.csv')
d = pd.DataFrame(d)
Run Code Online (Sandbox Code Playgroud)
只需使用pickleCSV而不是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)
Run Code Online (Sandbox Code Playgroud)
Pickle将正确地序列化并恢复大量数据类型,包括日期时间和大多数用户定义的开箱即用的类.
但是,如果您需要使用第三方工具手动编辑文件,或者希望它是人类可读的,则可能不是最佳选择.
如果你只需要数字,无,布尔,列表和词典,并且更喜欢人类可读的文本文件,那么JSON可能是一个不错的选择.Python的json模块使用与picle相同的接口,使用dump和loadcallables写入和读取文件.在上面的代码片段中,只需替换pickle为json,它将与指定的数据类型相同.此外,检查文档,以便json序列化输出填充漂亮的缩进,以便真正可读:https: //docs.python.org/3/library/json.html
| 归档时间: |
|
| 查看次数: |
109 次 |
| 最近记录: |