将函数编码为JSON

时间:2013-10-18 13:59:10

标签: python json python-2.7

我有一个包含operator模块中元素的数组。我尝试用JSON存储它,但是得到了以下错误信息。

import operator as op
import json
array = [1,op.ge]
json_encoded = json.dumps(array)
f = open("test.json","w")
f.write(json_encoded)
f.close()

TypeError: <built-in function ge> is not JSON serializable

是否有解决方法或其他方式来存储它?

1 个答案:

答案 0 :(得分:6)

您可以使用pickle模块,它也可以序列化对象:

import pickle
...
pickle_encoded = pickle.dumps(array)
...

Pickle将编写一个字节流,与JSON相比,它不会是人类可读的。