來自pymongo文檔:如何讓pymongo始終返回str而不是unicode?
MongoDB以BSON格式存儲數據。 BSON字符串是UTF-8編碼,所以PyMongo必須確保 它存儲的任何字符串只包含有效的UTF-8數據。常規字符串()被驗證並保存不變。 Unicode字符串()首先被編碼爲UTF-8。 >「而不是 ‘邁克’我們例子字符串在Python殼爲代表的u'Mike的原因是PyMongo每個BSON字符串爲Python unicode字符串,而不是常規 海峽解碼。」
它對我來說似乎有點傻,數據庫只能存儲UTF-8編碼的字符串,但pymongo中的返回類型是unicode,這意味着我必須處理來自文檔的每個字符串的第一件事情是再次調用encode('utf- 8'),有沒有辦法解決這個問題,比如告訴pymongo不要給我unicode而只是給我原始的str?
你爲什麼要這麼做? – RickyA
我正在處理幾個僅適用於編碼字符串的庫,例如bcrypt。很高興能夠向我的項目開發人員保證,他們所使用的所有數據都將是字符串,而不必添加大量的類型檢查。 – zjm555
問題出在「只是原始的大聲」。由於它是unicode,因此可能有那些不能表示爲str的字符。所以一個lib級別的轉換是不可行的。我只想告訴你的開發者,他們將得到的所有東西都是「」,並且他們必須將其轉換......這也爲您節省了不必要轉換的開銷。 – RickyA