我在 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
请问有人对此有解释和解决方案吗?