问题标签 [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.
python - Python Pickle 调用构造函数
我想使用 Python 的 pickle 序列化程序为缺失值提供默认值。由于类很简单,默认值自然存在于类的__init__
方法中。
我可以从pickle 文档中看到有__getnewargs__
. 但是,这仅适用于__getnewargs__
“酸洗”之前存在的情况。
有没有办法告诉 python pickle 总是调用构造函数而不是从未初始化的对象开始?
python - Python jsonpickle 错误:“OrderedDict”对象没有属性“_OrderedDict__root”
当我尝试腌制一个相当复杂的对象时,我遇到了这个异常jsonpickle
,不幸的是我不确定如何在这里描述。我知道这很难说太多,但对于它的价值:
谷歌搜索错误时,我没有找到太多帮助。我确实看到在过去的某个时间,对于更简单的对象,看起来同样的问题已经解决了:
https://github.com/jsonpickle/jsonpickle/issues/33
该报告中引用的示例对我有用:
有没有人自己遇到过这个问题并找到了解决方案?我的理解是,我的案例可能与另一个已知示例“不同的特质”。
python - 如何将json转换为对象?
我需要将 json-string 转换为 python 对象。通过对象,我的意思是“新”python3 对象,例如:
例如,我在 jsonpickle 文档中找到了一些帮助。但我发现的只是先将对象转换为 json 再向后转换的教程。
我想从Rest-API转换一个 json-string 。
这是我到目前为止所做的:
这导致:
我很清楚 jsonpickle 无法将其转换为我的类(目标、匹配),因为我没有告诉 jsonpickle 应该在哪个类中转换输出。问题是我不知道如何告诉 jsonpickle 将对象中的 JSON 从匹配类型转换?我怎么知道目标列表应该是 type List<Goal>
?
python - 无法导入 jsonpickle
我正在使用 jsonpickle ( https://jsonpickle.github.io/ ) 来序列化我的 Python 对象。但似乎甚至无法在没有错误的情况下导入。一切都是使用 pip 安装的。收到以下错误:
python - 是否可以 ujson.dumps() python 类实例(更快的深度复制)
我正在尝试快速复制一个类实例。cPickle.loads(cPickle.dumps(),-1)
工作正常,几乎比 快 5 倍copy.deepcopy
,但我读到ujson
的速度比cPickle
. 我无法让 ujson 使用自定义类,可以这样做吗?
例子:
json - 在 Python 中使用 YAML 或 JSON 序列化 RangeDict
我正在使用RangeDict制作包含范围的字典。当我使用 Pickle 时,它很容易写入文件并稍后读取。
但是,我想使用 YAML(或 JSON,如果 YAML 不起作用......)而不是 Pickle,因为大多数人似乎讨厌它(我想要人类可读的文件,这样它们对阅读它们的人有意义)
基本上,更改代码以调用 yaml 并以'w'
模式打开文件,而不是在'wb'
写入方面的技巧,但是当我在另一个脚本中读取文件时,我收到以下错误:
我在这里迷路了。如何序列化 rangedict 对象并以原始形式读回它?
python - 如何将 Python 字典写入文件而不使它们成为字符串?
我想将 Python 字典列表写入文件。但是,我需要字典(和其中的列表)来保留字典,即当我加载文件进行处理时,我希望它们使用字典而不必使用字符串。
这是我将数据写入字符串的示例代码,有没有办法保留原始 Python 数据结构(在实际代码中,列表数据有数百个字典,每个字典可能有数百个列表作为值)。我不能简单地腌制数据,原因有很多(其中一个是文件需要是人类可读的)。
目前,我使用 pandas 以下列方式读取数据文件来处理数据。
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"}}
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文件具有不同的结构,因此当我运行此代码时它会抛出错误
python - 为 jsonpickle 覆盖 __getstate__ 但不是为 deepcopy
我想在腌制对象实例(发送到 json-api 端点)时隐藏一些(私有)属性。我为此添加了一个 __getstate__ 函数,但副作用是 deepcopy 也使用了 __getstate__。我不想在对实例进行深度复制时排除任何属性,有没有办法在这里区分调用函数?
检查堆栈告诉我“deepcopy”或“_flatten_obj_instance”何时是调用函数,但我知道在生产代码中检查这些不是好习惯。关于如何避免使用此代码进行 deepcopy,但在 jsonpickle 中使用它的任何想法?