问题标签 [jsonpickle]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
942 浏览

python - 实现 jsonpickle 自定义处理程序时如何处理单个值?

我为 jsonpickle 编写了一个自定义处理程序,以便在序列化对象容器之前转换枚举值。

处理程序是用包含枚举值的 obj 调用的。但是数据字典已经包含一个键值对,所以我不能只返回一个表示枚举的值。

所以我的问题是,当我自定义处理返回一个唯一值的元素时,我需要添加到数据字典中的关键值对应该是什么,而我需要将其放入预先填充的数据字典中稍后重建对象所需的反射数据。

0 投票
2 回答
173 浏览

python - 将 Python 对象序列化为使用 eulxml.xmlmap.XmlObject 创建的 JSON

我有一组我使用创建的 python 对象eulxml.xmlmap.XmlObject(我使用这种方法主要是因为我正在使用 eXistDB 服务器并且 eulxml 提供了一个非常简单的映射功能)。我能够成功查询我的 eXistDB 并将 xquery 结果集加载到我创建的一些 python 对象中。我的问题是,当我将这些对象传递给网络服务器时(使用 Angular 作为前端),我希望能够将这些对象作为 JSON 写出来。

我试过使用 jsonpickle 但似乎 eulxml 正在做某种延迟加载魔法。对 jsonpickle 将我的对象序列化为 json 的标准调用给了我这个结果:

蟒蛇代码:

结果:

它似乎只输出属性的类型,而不是属性本身的值。如果我将我的 jsonpickle 代码更改为设置 unpickable=False,我得到的只是一组空的 json(这意味着结构存在于正确数量的花括号和方括号中,但实际上没有数据。json 输出是只是花括号和方括号)。

我想也许如果我尝试访问该字段中的一个值,然后输出可能有效的 json(至少对于我访问的字段)但没有运气。我得到与上述相同的结果(是的,我已经仔细检查过对象本身是否有数据)。

在这一点上,我有点不知所措。我可以迁移到 BeautifulSoup 之类的东西,但这意味着要编写更多代码(eulxml 让我只需将 xpath 指定为我想要填充属性的值和 bing,我就完成了)。jsonpickle 有什么我缺少的吗?还是我应该看看另一个 json 包?或者,也许我让这种方式变得比我需要的更困难,还有其他方法可以使用 python 查询 eXistDB,然后将信息发送到使用 Angular 构建的前端应用程序。我愿意接受建议。

我将在下面包含我的代码示例(我不会包含所有代码,因为我可能正在使用 10 多个对象):

带有 eulxml 的示例对象代码:

0 投票
1 回答
165 浏览

python - Jsonpickle - ensure deterministic encoding

The encoding is basically string representation of a dictionary, containing the object's fields. However, a dictionary does not respect order, and I could potentially get different encoding string on different runs. How do I preclude this from happening? Or should I use another library where I can ensure deterministic encoding?

By deterministic encoding, I mean if I create 100000 objects that are practically the same, i.e. same class and same constructor args, when I call encode() on each one of them, I get the exact same string every time.

So, for example, if I have

I want to be sure that the strings encode(c1) and encode(c2) are perfectly identical, character for character, i.e.

0 投票
0 回答
881 浏览

python - 将magicmock传递给jsonpickle.encode()时超出最大递归深度

单元测试将对象列表传递给方法。该方法在对象上使用 jsonpickle.encode。

很好,但是当单元测试发送模拟对象列表并遇到无限递归时该怎么办?

以下是代码示例:

抛出的错误是: RuntimeError: maximum recursion depth exceeded since jsonpickle 显然沿着模拟对象中的无限树向下移动。

如何在传递模拟对象时保持生产代码原样(encodeFoos)并且不会遇到最大递归?

谢谢!

0 投票
1 回答
449 浏览

python - discord.ext.commands.errors.CommandInvokeError:命令引发异常:UnpicklingError:无效的加载键,'H'

我已经通过 Stackoverflow 搜索了所有内容,但找不到修复程序,当然很多其他人也有同样的错误,但当我查找它们时,他们并没有真正提供帮助。错误是:

CommandInvokeError:命令引发异常:UnpicklingError:无效的加载键,'H'

这是我目前拥有的代码:

那在我的主文件中,我还有另一个文件让它从我拥有的 .txt 文件中读取,这是那个文件的代码

我在第二个文件上得到与第一个文件相同的错误。如果有人可以帮我解决这个问题,我谢谢你!

该图像是所有文件的样子。Cow.py 是读取 .txt 文件的代码 该图像是所有文件的样子。 Cow.py 是读取 .txt 文件的代码

0 投票
0 回答
128 浏览

javascript - jsonpickle - 错误的 JSON 格式

我正在尝试使用 jsonpickle 以 JSON 格式将对象发送到前端。这是代码:

但是,当我尝试回显在我的 javascript 代码中生成的字符串时,我在调用时得到了这个结果console.log({{json_values}})

[{'"id": 7, "novo_peso": "13"}, {"id": 13, "novo_peso": "17"}]

在控制台中查看下图: 在此处输入图像描述

我正在使用最新的 Google Chrome 版本。难道我做错了什么?

谢谢

0 投票
1 回答
399 浏览

python - jsonpickle adds leading underscore to python object properties

I am using jsonpickle to turn a nested python object into json. Python class:

Module for serialization:

Unfortunately the created json depicts _url instead of url. How to avoid leading underscore creation in json when using pythin properties? thanks.

0 投票
2 回答
741 浏览

python - 带有 simplejson 后端的 jsonpickle 将 Decimal 序列化为 null

我正在尝试在 python 3.7 中使用 jsonpickle 将对象树序列化为 json。但是,所有Decimals 都被序列化为null. 我使用 simplejson 作为后端,所以它应该能够序列化小数。

如何将(复杂)对象树序列化为 json,包括小数?

示例代码(需要安装 simplejson 和 jsonpickle):预期的序列化 json 应该是{"amount": 1.0}并且我不想使用float,因为舍入错误。

PS 我不在乎使用 jsonpickle。因此,也欢迎使用 jsonpickle 的替代方法将复杂的对象树序列化为 json(包括十进制字段)。

0 投票
1 回答
83 浏览

python - Json反对并返回像java一样的python

我正在使用 jsonpickle,它使用带有参数的“py/object”创建 JSON unpicklable=True。如果我需要unpicklable=False输入简单的 JSON,在 Java 中是否有类似的库?

在 JSON 中放置长的“py/object”名称是很奇怪的。因为这些名称是特定于应用程序的

0 投票
1 回答
119 浏览

python - Python中酸洗的安全场景

我知道酸洗/解酸可能存在严重的安全隐患。我打算使用酸洗作为使用 jsonpickle 在 Django 模型中存储和传输对象实例的一种方式。我还打算使用散列或签名在解封之前验证泡菜的完整性(即发送散列,然后发送泡菜,无论如何)。

由于我自己的代码将生成腌制对象,因此假设传输中的任何对象也将被加密,这种方法是否足够安全(相对或绝对)?