class bean :
def __init__(self, puid, pogid, bucketId, dt, at) :
self.puid = puid
self.pogid = pogid
self.bucketId = bucketId
self.dt = (datetime.datetime.today() - datetime.datetime.strptime(dt, "%Y-%m-%d %H:%M:%S")).days
self.absdt=dt
self.at = at
我也读
类、函数和方法不能pickle--如果您pickle,则对象的类不pickle,只是标识它属于什么类的字符串。
那么,这是否意味着这些类不能被序列化?
def myfun():
**Some Logic **
t1 = bean(<params>)
t2 = bean(<params2>)
temp = list()
temp.append(t1)
temp.append(t2)
return temp
现在它是如何最终被称为
PairRDD.map(myfun).collect()
引发异常的
<function __init__ at 0x7f3549853c80> is not JSON serializable
首先,以您的例子为例,pickle将非常有效。pickle不序列化“函数”,它只序列化“数据”--因此,如果您在远程脚本上有您试图序列化的类型,即如果您在接收端导入了类型“bean”--您可以使用pickle或cpickle,一切都可以工作。
所有跨语言序列化解决方案(例如JSON
、XML
)永远不会提供传输类“代码”的能力,因为没有合理的方法来表示它。如果您在两端使用相同的语言(如这里),有方法使其工作-例如,您可以封送对象,pickle结果,发送它,在接收端接收,unpickle和unmarshal,您有一个对象及其函数-这实际上是发送代码和eval()
-在接收端将其发送..
下面是一个基于酸洗对象类的快速示例:
test.py
import datetime
import pickle
class bean:
def __init__(self, puid, pogid, bucketId, dt, at) :
self.puid = puid
self.pogid = pogid
self.bucketId = bucketId
self.dt = (datetime.datetime.today() - datetime.datetime.strptime(dt, "%Y-%m-%d %H:%M:%S")).days
self.absdt=dt
self.at = at
def whoami(self):
return "%d %d"%(self.puid, self.pogid)
def myfun():
t1 = bean(1,2,3,"2015-12-31 11:50:25",4)
t2 = bean(5,6,7,"2015-12-31 12:50:25",8)
tmp = list()
tmp.append(t1)
tmp.append(t2)
return tmp
if __name__ == "__main__":
with open("test.data", "w") as f:
pickle.dump(myfun(), f)
with open("test.data", "r") as f2:
obj = pickle.load(f2)
print "|".join([bean.whoami() for bean in obj])
运行它:
ben@ben-lnx:~$ python test.py
1 2|5 6
本文向大家介绍Python pickle类库介绍(对象序列化和反序列化),包括了Python pickle类库介绍(对象序列化和反序列化)的使用技巧和注意事项,需要的朋友参考一下 一、pickle pickle模块用来实现python对象的序列化和反序列化。通常地pickle将python对象序列化为二进制流或文件。 python对象与文件之间的序列化和反序列化: 如果要实现python对象和
问题 你需要将一个Python对象序列化为一个字节流,以便将它保存到一个文件、存储到数据库或者通过网络传输它。 解决方案 对于序列化最普遍的做法就是使用 pickle 模块。为了将一个对象保存到一个文件中,可以这样做: import pickle data = ... # Some Python object f = open('somefile', 'wb') pickle.dump(data
" Every Saturday since we’ve lived in this apartment, I have awakened at 6:15, poured myself a bowl of cereal, added a quarter-cup of 2% milk, sat on this end of this couch, turned on BBC America, and
问题内容: 建议使用保留的字段名称将a序列化为json 的建议方式是什么? 将a 序列化为json只会导致值被序列化,并且字段名称在转换中会丢失。我希望在json大小化时也保留这些字段,因此请执行以下操作: 上面的代码按照我的期望序列化为json,并且在我使用的其他地方(属性访问等)中起作用,除了在迭代过程中出现非元组之类的结果外(对于我的用例来说这很好)。 在保留字段名称的情况下转换为json的
问题内容: 我有一个对象的一部分,希望将其编码为JSON字符串,看起来像。我不在乎客户端的精度,因此浮点数很好。 有一个好的方法可以将此序列化吗?JSONDecoder不接受Decimal对象,并且事先转换为float会产生错误,这将浪费大量带宽。 问题答案: 子类化如何? 然后像这样使用它:
我正在尝试使用kryo序列化和反序列化到二进制。我想我已经完成了序列化,但似乎无法反序列化。下面是我正在处理的代码,但最终我想存储一个字节[],然后再次读取它。文档只显示了如何使用文件。