Skip to main content
 首页 » 编程设计

python之在 Python 中序列化函数的源代码

2025年05月04日13zfyouxi

<分区>

我正在尝试序列化代码并将其作为 json 发送...

def f(x): return x*x 
def fi(x): return int(x[0]) 
 
code_string = marshal.dumps(fi.func_code) 
 
jsn = {"code":code_string) 
json.dumps(jsn) # doesnt work if code_string is from fi 

所以...如果我的函数是 f(x),上面的代码块就可以工作

但是对于 fi(x) 失败

原来的异常(exception)是:

Traceback (most recent call last): 
  File "/home/mohitdee/Documents/python_scala/rdd.py", line 41, in <module> 
    send_data(json.dumps(jsn)) 
  File "/usr/lib/python2.7/json/__init__.py", line 231, in dumps 
    return _default_encoder.encode(obj) 
  File "/usr/lib/python2.7/json/encoder.py", line 201, in encode 
    chunks = self.iterencode(o, _one_shot=True) 
  File "/usr/lib/python2.7/json/encoder.py", line 264, in iterencode 
    return _iterencode(o, 0) 
UnicodeDecodeError: 'utf8' codec can't decode byte 0x83 in position 32: invalid start byte 
[48001 refs] 

我如何在 python 中解决这个问题