如何使Python类可序列化?
一个简单的课程:
class FileItem:
def __init__(self, fname):
self.fname = fname
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能得到输出:
>>> import json
>>> my_file = FileItem('/foo/bar')
>>> json.dumps(my_file)
TypeError: Object of type 'FileItem' is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
没有错误(__CODE__)
如何在Python中打印深度为~4的字典呢?我尝试使用漂亮的打印pprint(),但它不起作用:
import pprint
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(mydict)
Run Code Online (Sandbox Code Playgroud)
我只想"\t"为每个嵌套设置一个缩进(),这样我得到这样的东西:
key1
value1
value2
key2
value1
value2
Run Code Online (Sandbox Code Playgroud)
等等
我怎样才能做到这一点?
花了相当多的时间观察SO上的r和pandas标签,我得到的印象是pandas问题不太可能包含可重现的数据.这是值得的R社会一直要鼓励不错,并感谢像导游这样,新人能得到放在一起,这些例子一些帮助.能够阅读这些指南并返回可重现数据的人通常会更好地获得他们问题的答案.
我们如何为pandas问题创建良好的可重复示例?简单的数据帧可以放在一起,例如:
import pandas as pd
df = pd.DataFrame({'user': ['Bob', 'Jane', 'Alice'],
'income': [40000, 50000, 42000]})
Run Code Online (Sandbox Code Playgroud)
但是许多示例数据集需要更复杂的结构,例如:
datetime 指数或数据expand.grid()函数,它会产生某些给定变量的所有可能组合?)对于dput()难以使用几行代码进行模拟的数据集,是否有与R相当的R ,它允许您生成可复制粘贴的代码以重新生成数据结构?
创建NumPy数组并将其保存为Django上下文变量后,加载网页时收到以下错误:
array([ 0, 239, 479, 717, 952, 1192, 1432, 1667], dtype=int64) is not JSON serializable
Run Code Online (Sandbox Code Playgroud)
这是什么意思?
最近我经常发现自己在问Pandas我依赖于我正在使用的数据的问题,到目前为止我需要花很长时间来创建一个与我的数据相似的数据框(可重复的数据框),以便SO用户可以轻松复制它到他们的机器.
我宁愿找到一个方便的方法,所以我可以在我的问题中打印我的小DF,其他用户可以轻松地收集它,因此用最小的努力创建它.
在R我习惯dput在控制台的函数中打印我的数据的一小部分样本,然后在我的问题中打印输出(示例):
运行for循环时获取错误"级别因素集是不同的"
我已经注意到了这个解释,但我认为它不适合为其他SO用户打印数据样本: Python相当于R的dput()函数
在Pandas中是否有相同的方法来做到这一点?
提前致谢!