gpt4 book ai didi

python - 如何将Python字典写入文件而不使其成为字符串?

转载 作者:行者123 更新时间:2023-12-02 01:54:15 24 4
gpt4 key购买 nike

我想将 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),通过 dumpload 可调用函数来写入和读取文件。在上面的代码片段中,只需将 pickle 替换为 json ,它就可以与规定的数据类型相同地工作。此外,检查文档,以便 json 序列化输出用良好的缩进填充,以便真正可读:https://docs.python.org/3/library/json.html

关于python - 如何将Python字典写入文件而不使其成为字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47910532/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com