问题标签 [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 回答
1823 浏览

python - Python Pickle 调用构造函数

我想使用 Python 的 pickle 序列化程序为缺失值提供默认值。由于类很简单,默认值自然存在于类的__init__方法中。

我可以从pickle 文档中看到有__getnewargs__. 但是,这仅适用于__getnewargs__“酸洗”之前存在的情况。

有没有办法告诉 python pickle 总是调用构造函数而不是从未初始化的对象开始?

0 投票
1 回答
1546 浏览

python - Python jsonpickle 错误:“OrderedDict”对象没有属性“_OrderedDict__root”

当我尝试腌制一个相当复杂的对象时,我遇到了这个异常jsonpickle,不幸的是我不确定如何在这里描述。我知道这很难说太多,但对于它的价值:

谷歌搜索错误时,我没有找到太多帮助。我确实看到在过去的某个时间,对于更简单的对象,看起来同样的问题已经解决了:

https://github.com/jsonpickle/jsonpickle/issues/33

该报告中引用的示例对我有用:

有没有人自己遇到过这个问题并找到了解决方案?我的理解是,我的案例可能与另一个已知示例“不同的特质”。

0 投票
3 回答
9600 浏览

python - 如何将json转换为对象?

我需要将 json-string 转换为 python 对象。通过对象,我的意思是“新”python3 对象,例如:

例如,我在 jsonpickle 文档中找到了一些帮助。但我发现的只是先将对象转换为 json 再向后转换的教程。

我想从Rest-API转换一个 json-string 。

这是我到目前为止所做的:

这导致:

我很清楚 jsonpickle 无法将其转换为我的类(目标、匹配),因为我没有告诉 jsonpickle 应该在哪个类中转换输出。问题是我不知道如何告诉 jsonpickle 将对象中的 JSON 从匹配类型转换?我怎么知道目标列表应该是 type List<Goal>

0 投票
0 回答
981 浏览

python - 无法导入 jsonpickle

我正在使用 jsonpickle ( https://jsonpickle.github.io/ ) 来序列化我的 Python 对象。但似乎甚至无法在没有错误的情况下导入。一切都是使用 pip 安装的。收到以下错误:

0 投票
2 回答
1708 浏览

python - 是否可以 ujson.dumps() python 类实例(更快的深度复制)

我正在尝试快速复制一个类实例。cPickle.loads(cPickle.dumps(),-1)工作正常,几乎比 快 5 倍copy.deepcopy,但我读到ujson的速度比cPickle. 我无法让 ujson 使用自定义类,可以这样做吗?

例子:

0 投票
1 回答
439 浏览

json - 在 Python 中使用 YAML 或 JSON 序列化 RangeDict

我正在使用RangeDict制作包含范围的字典。当我使用 Pickle 时,它​​很容易写入文件并稍后读取。

但是,我想使用 YAML(或 JSON,如果 YAML 不起作用......)而不是 Pickle,因为大多数人似乎讨厌它(我想要人类可读的文件,这样它们对阅读它们的人有意义)

基本上,更改代码以调用 yaml 并以'w'模式打开文件,而不是在'wb'写入方面的技巧,但是当我在另一个脚本中读取文件时,我收到以下错误:

我在这里迷路了。如何序列化 rangedict 对象并以原始形式读回它?

0 投票
3 回答
315 浏览

python - 如何将 Python 字典写入文件而不使它们成为字符串?

我想将 Python 字典列表写入文件。但是,我需要字典(和其中的列表)来保留字典,即当我加载文件进行处理时,我希望它们使用字典而不必使用字符串。

这是我将数据写入字符串的示例代码,有没有办法保留原始 Python 数据结构(在实际代码中,列表数据有数百个字典,每个字典可能有数百个列表作为值)。我不能简单地腌制数据,原因有很多(其中一个是文件需要是人类可读的)。

目前,我使用 pandas 以下列方式读取数据文件来处理数据。

0 投票
3 回答
2751 浏览

python - 避免 jsonpickle 使用指向另一个对象的 py/id 指针

当使用 jsonpickle 将对象序列化为 json 时,我注意到诸如 datetime 之类的对象被存储一次,然后将来的使用被存储为引用值,例如{"py/id":1}. 是否可以存储实际值而不是参考?此引用似乎是隐藏的,并且在直接与数据库交互时会造成混淆。

前任。 class MyClass: def __init__(self, eee): now = datetime.datetime.utcnow() self.ddd = now self.ddd2 = now self.ddd3 = now

json是 {"py/object": "__main__.MyClass", "py/state": {"ddd": {"py/object": "datetime.datetime", "__reduce__": [{"py/type": "datetime.datetime"}, ["B+IBFhYJCwx9oQ=="]]}, "ddd2": {"py/id": 1}, "ddd3": {"py/id": 1}, "eee": "fwaef"}}

0 投票
2 回答
727 浏览

python - 如何在python中的现有pickle文件中添加新数据集

我有这个泡菜文件https://github.com/Nilabhra/ethnicity/blob/master/models/ethnicity_classifier_last_name.pkl它是从 json 文件生成的https://github.com/Nilabhra/ethnicity/blob/master/json_counts/ last_name_ethnicity.json

我的问题:如何删除旧数据集并将新数据集放入 .pkl 文件中。

但是上面代码生成的pickle文件具有不同的结构,因此当我运行此代码时它会抛出错误

0 投票
1 回答
482 浏览

python - 为 jsonpickle 覆盖 __getstate__ 但不是为 deepcopy

我想在腌制对象实例(发送到 json-api 端点)时隐藏一些(私有)属性。我为此添加了一个 __getstate__ 函数,但副作用是 deepcopy 也使用了 __getstate__。我不想在对实例进行深度复制时排除任何属性,有没有办法在这里区分调用函数?

检查堆栈告诉我“deepcopy”或“_flatten_obj_instance”何时是调用函数,但我知道在生产代码中检查这些不是好习惯。关于如何避免使用此代码进行 deepcopy,但在 jsonpickle 中使用它的任何想法?