【发布时间】: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