【发布时间】:2015-01-04 08:20:11
【问题描述】:
我看过很多关于在 pymongo 中进行 MongoDB 查询后返回的 bson 文档转换为 json 的帖子。
就我而言,我从存储在 MongoDB 中的 Cuckoo 分析结果中获取了一个文档。我可以访问并打印该 bson 文档中的特定字段。但是,在使用 bson 中的 json_util 将其转换为 json 并尝试访问同一字段后,我收到错误消息。使用对象还有什么事情要做吗?
代码如下:
from pymongo import MongoClient
from bson.json_util import dumps, default
<...pymongo code for connecting to MongoDB server...>
result_cursor = analysis.find({"info.id": 1770}, {"behavior.summary": 1})
for doc in result_cursor:
print doc["behavior"]
doc_json = dumps(doc, default=default)
print doc_json["behavior"]
从上面的代码中,第一个打印工作正常,但最后一个触发异常,因为我认为它将对象视为列表而不是字典:
{u'summary': {u'files': .....}}
Traceback(最近一次调用最后一次):文件 "C:/Users/itisnobody/PycharmProjects/mongo-cuckoo/mongodb-cuckoo.py", 第 42 行,在 print doc_json["behavior"] TypeError: string indices must be integers, not str
【问题讨论】:
-
当我得到对象的类名时,doc对象是dict,doc_json对象是str。为什么会这样?
标签: python json mongodb pymongo bson