0

我在 django 项目中使用 jsonpickle 将自定义对象的列表、集合或字典存储在models.JSONField.

我正在运行测试来检查我的代码:一切都很好,但是如果我只是尝试在.reload_from_db()其中包含这种 JSONField 的实例就会出错。

问题来自json解码。

挖完这个,我发现这个字符串:

 {
  "py/set": [
       {
            "py/function": "Main.files.Effects.AddEffectToAttacks.apply.<locals>.remove_effect.<locals>.wrapper"
       }
  ] }

变成:

{None}

比方说:

s = '{\n     "py/set": [\n          {\n               "py/function": "Main.files.Effects.AddEffectToAttacks.apply.<locals>.remove_effect.<locals>.wrapper"\n          }\n     ]\n}'

jsonpickle.decode(s) {None}当它显然不是 None 而是一个函数时将返回:

Main.files.Effects.AddEffectToAttacks.apply.<locals>.remove_effect.<locals>.wrapper

请问有人对此有解释和解决方案吗?

4

0 回答 0