无需借助 csv 文件即可保存和加载复杂的 python 字典
Posted
技术标签:
【中文标题】无需借助 csv 文件即可保存和加载复杂的 python 字典【英文标题】:Saving and loading a complicated python dictionary without resorting to csv files 【发布时间】:2019-08-02 04:40:14 【问题描述】:我一直在处理简单的字典,我知道可以保存/加载它们的唯一方法是通过pandas
中的to_csv()
和pd.read_csv()
。因为csv
是我知道可以完成工作的唯一方法,所以有时我可能会遇到字典,其键可能与无法在csv
中正确保存/加载的复杂内容相关联,这就是我寻求帮助的原因这里。
这是我刚刚想出的一个稍微复杂的字典的例子:
import numpy as np
import pandas as pd
simple_dict1 = 'dict1': 'item1': None,
'item2': False,
'item3': 'hello world',
'item4': 42.42,
'item5': [f'item i' for i in range(42)],
'item6': f'itme i': i for i in range(42),
'item7': np.random.rand(3,42),
'item8': pd.DataFrame(np.random.rand(3,42), columns = [f'col i+1' for i in range(42)])
,
'dict2': 'item1': True,
'item2': 'hello',
'item3': 24.24,
'item4': [f'item i' for i in range(24)],
'item5': f'itme i': i for i in range(24),
'item6': np.random.rand(2,24),
'item7': pd.DataFrame(np.random.rand(2,24), columns = [f'col i+1' for i in range(24)])
,
'dict3': 'item1': (10,20),
'item2': [],
'item3': ,
'item4': (),
'item5': i for i in range(4),
'item6': f'itme i': for i in range(24),
,
'list1': [type(item) for item in (, [], ())]
我的目标是创建两个函数:
功能1:将相对/绝对路径和字典作为输入,并将所述字典保存到所述路径中。
函数2:将相对/绝对路径作为输入,从所述路径读取字典,并返回所述字典。此字典需要与保存的原始字典相同。
这个问题可能问得太多了,但我真的没有深入了解如何保存/加载像上面那样的复杂字典。 先感谢您。
编辑:将其中一个标签更改为 pickle,因为 pickle 可能能够解决问题。
【问题讨论】:
不是重复的,但这可以回答您的问题。 ***.com/questions/11218477/… 【参考方案1】:您可以使用pickle
标准库来加载和保存任意数据结构。
https://docs.python.org/3/library/pickle.html
有一些警告:如该页面所示,不要取消腌制不受信任的数据,腌制格式可能会在不同的 python 版本之间发生变化。
【讨论】:
谢谢@Matthew Schinckel,我刚刚在标签中添加了pickle
,希望pickle
专家会来这里对这个话题有所了解,甚至对我的特殊问题给出答案.以上是关于无需借助 csv 文件即可保存和加载复杂的 python 字典的主要内容,如果未能解决你的问题,请参考以下文章
将 Dataframe 保存到 csv 直接保存到 s3 Python
如何使用 Spark 加载 JSON(保存在 csv 中的路径)?
Windows 10:无需保存对话框即可打印 PDF 文件的简单方法