【问题标题】:Inserting string as regular string in mongodb在mongodb中将字符串作为常规字符串插入
【发布时间】:2015-02-26 12:53:13
【问题描述】:

pymongo 文档说 BSON 字符串是 UTF-8 编码的,因此 PyMongo 必须确保它存储的任何字符串只包含有效的 UTF-8 数据。 Unicode 字符串 (<type ‘unicode’>) 首先使用 UTF-8 编码。我们的示例字符串在 Python shell 中表示为 u'Mike' 而不是“Mike”的原因是 PyMongo 将每个 BSON 字符串解码为 Python unicode 字符串,而不是常规 str。

所以我知道要摆脱 Unicode 文字“u”,我必须在查询返回的文档上调用 json.dumps()

文档还说,常规字符串 (<type ‘str’>) 已经过验证并按原样存储。而且我假设查询结果也将其作为常规字符串而不是 Unicode 字符串返回。

我创建了一个具有常规字符串类型的字典并将其插入数据库中,当我检索它时,我将字符串作为 Unicode。关于我该怎么做的任何想法?目的是避免在查询结果上调用json.dumps()。我需要从数据库中获取大量文档,json.dumps() 需要相当长的时间。我存储的字符串包含 ASCII 数据,所以我不需要 Unicode 字符串。

【问题讨论】:

    标签: pymongo


    【解决方案1】:

    常规字符串作为常规字符串返回的假设是不正确的。因为它已经是 UTF-8,所以它原封不动地存储并且未编码为 UTF-8。在查询期间解码时,所有内容都转换回 Unicode。

    来源:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 2011-05-23
      • 1970-01-01
      • 2016-09-12
      相关资源
      最近更新 更多