【问题标题】:bson.josn_util returns a string not a listbson.josn_util 返回一个字符串而不是一个列表
【发布时间】:2017-08-21 08:57:49
【问题描述】:

我正在尝试将 BSON 从 MongoDB 转换为 JSON 以使用 bson.json_util.dumps 但是这个函数返回的是一个字符串而不是一个列表。

即[{"id":"demo"},{"id":"demo_new"}] --> '[{"id":"demo"},{"id":"demo_new"}]'

这很难迭代,因为它从字符串而不是列表中获取单个元素。

正在迭代 --> '[','{','"',"i","d" 等等 希望迭代是 --> {"id":"demo"} , {"id":"demo_new"}

有什么建议可以让字符串变回列表吗?

【问题讨论】:

  • 是的,JSON 是一种文本格式,即字符串。如果你想把一个 BSON 文档变成一个列表,根本不需要涉及 JSON。
  • @Adonis 谢谢,负载确实有效,并将 json 中的 bson 转换为列表。但是这些值在键前带有“u”,表示它不是有效的 json 。 ex {u'_id': ObjectId('59761b2cc6568a4e341b6b89'), u'description': u'lets add some things new', u'title': u'hi'} 有什么帮助吗?
  • 首先 loads 调用将 Json 格式的字符串反序列化为 python dict,所以它确实不再是 Json。现在您所指的u 表示这是一个string encoded in unicode。老实说,我不明白你的问题,你能更明确一点吗?
  • @Adonis 感谢您抽出宝贵时间 :)。我已经在这个问题中详细解释了我的问题任何帮助将不胜感激stackoverflow.com/questions/45827542/…

标签: python json string list bson


【解决方案1】:

我遇到了同样的问题。

我的解决方案如下:

from bson import encode, decode
json = decode(encode(...))

... 是您提出查询的位置。

【讨论】:

    猜你喜欢
    • 2011-09-19
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    • 2015-05-10
    • 2017-09-19
    • 2013-08-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多