我似乎无法使用BSON
json_util反序列化我的MongoDB
JSON文档。
json.loads函数使ObjectId()
字符串阻塞。我了解json_util能够处理MongoDB的ObjectId格式并将其转换为可用的JSON。
Python代码:
import json
from bson import json_util
s = "{u'_id': ObjectId('4ed559abf047050c58000000')}"
u = json.loads(s, object_hook=json_util.object_hook)
我得到了解码器异常:
...
u = json.loads(s, object_hook=json_util.object_hook)
File "\python27\lib\json\__init__.py", line 339, in loads
return cls(encoding=encoding, **kw).decode(s)
File "\python27\lib\json\decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "\python27\lib\json\decoder.py", line 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 1 (char 1)
我想念什么吗?
我认为您的字符串形式实际上看起来像python表示形式…
s = '{"_id": {"$oid": "4edebd262ae5e93b41000000"}}'
u = json.loads(s, object_hook=json_util.object_hook)
print u # Result: {u'_id': ObjectId('4edebd262ae5e93b41000000')}
s = json.dumps(u, default=json_util.default)
print s # Result: {"_id": {"$oid": "4edebd262ae5e93b41000000"}}
对于实际的json字符串表示形式中存在ObjectId(),bson.json_util.object_hook函数似乎没有任何类型的处理。
问题内容: 这是我的课 最初的一个实际上需要转换为良好的json数据。这是最初的坏人 这是我的json数据,我无法反序列化。即使更改,我仍会收到默认值 我的自定义封面 问题答案: 您可以使用json.net以显示的格式对a进行反序列化和重新序列化,只要您使用custom即可。这是必需的,因为默认情况下,对象集合在JSON数组之间进行序列化,但是在JSON中,对象集合以单个对象的紧凑形式进行序列化,
1) json: 2) 代码: 错误消息为: 我检查了json文件,它是有效的。 我不知道发生了什么事。
我从 REST API 获得以下 JSON 作为响应。 并尝试使用下面的代码进行解析,但这不会导致正确的反序列化类型。 下面是我在JSON响应中收到的字段的类。 缺少了什么?
问题内容: 我试图序列化和反序列化内部对象的数组列表: HairList对象也是一个可序列化的对象。 此代码执行返回以下错误: 排队 我不知道我在做什么错。你能给个小费吗? 更新: 解决: 仅使用HairBirt的本机数组而不是ArrayList即可工作: 代替 感谢大家的帮助。 问题答案: 不要使用-而是使用二进制数据并对它进行base64编码,以将其转换为字符串而不会丢失信息。 我强烈怀疑这是
问题内容: 我很好奇序列化和反序列化的方式。我使用关键字“ json”和“ tuple”进行搜索,但找不到所需的内容。 问题答案: 我通过和Json.net进行测试,测试代码如下。结果显示可序列化和可反序列化。因此,我可以在应用程序中使用它们。 测试代码 注释 在将序列化到字符串{“项目1”:“一”,“项目2”:“嘻嘻”,“项目3”:真正},并且它可以被反序列化回类型。