2024-10-01 02:18:42 发布
网友
python中是否有类似于R中的dput() function的函数?在
这个答案集中在json.dump()和{}以及如何将它们与numpy数组一起使用。如果您尝试这样做,Python将返回一个错误,指出ndarray不是JSON可序列化的:
json.dump()
import numpy as np import json a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) json.dumps(a)
TypeError: Object of type 'ndarray' is not JSON serializable
您可以通过先将其转换为列表来避免这种情况。下面是两个工作示例:
json.dumps()
json.dumps()似乎最接近R的dput(),因为它允许您直接从控制台复制粘贴结果:
dput()
{{cd5>还是很有用的。json.dump()将把你的对象编码成一个json文件。在
# Encode: savehere = open('file_location.json', 'w') json.dump(a.tolist(), savehere)
你可以在其他地方解码:
# Decode: b = open('file_location.json', 'r').read() # b is '[[1, 2, 3], [4, 5, 6], [7, 8, 9]]' c = json.loads(b)
然后您可以再次将其转换回numpy数组:
c = np.array(c)
有关避免“不可序列化”错误,请参阅:
numpy array is not json serializable
how to make classes json serializable(有点无关,但很有趣)
将Python对象序列化为文件有几个选项:
import json
json
pickle.dump()
不常见:
shelve
dict
marshal.dump()
对于pandas.DataFrame,print(df.to_dict()),如here
pandas.DataFrame
print(df.to_dict())
这个答案集中在}以及如何将它们与numpy数组一起使用。如果您尝试这样做,Python将返回一个错误,指出ndarray不是JSON可序列化的:
json.dump()
和{您可以通过先将其转换为列表来避免这种情况。下面是两个工作示例:
json.dumps()
^{pr2}$json.dumps()
似乎最接近R的dput()
,因为它允许您直接从控制台复制粘贴结果:json.dump()
{{cd5>还是很有用的。
json.dump()
将把你的对象编码成一个json文件。在你可以在其他地方解码:
然后您可以再次将其转换回numpy数组:
更多信息
有关避免“不可序列化”错误,请参阅:
numpy array is not json serializable
how to make classes json serializable(有点无关,但很有趣)
将Python对象序列化为文件有几个选项:
json.dump()
以JSON格式存储数据。它具有很强的可读性和可编辑性,但只能存储列表、dict、字符串、数字、布尔值,因此没有复合对象。您需要在import json
之前使json
模块可用。在pickle.dump()
可以存储大多数对象。在不常见:
shelve
模块将多个Python对象存储在一个DBM数据库中,主要表现为一个持久的dict
。在marshal.dump()
:不知道什么时候你需要它。在对于
pandas.DataFrame
,print(df.to_dict())
,如here相关问题 更多 >
编程相关推荐