我有一个词典data_dump
列表,其中包含以下字典:
d = {"ids": s_id, "subject": subject}
我正在按照教程尝试批量插入:
connection = Connection(host,port)
db = connection['clusters']
posts = db.posts
posts.insert(data_dump)
失败并出现以下错误:
File "/usr/local/lib/python2.7/dist-packages/pymongo/collection.py", line 312, in insert
continue_on_error, self.__uuid_subtype), safe)
bson.errors.InvalidStringData: strings in documents must be valid UTF-8
请指教。 感谢
答案 0 :(得分:3)
解决: 嗯..强制编码 1)剥离符号串等 然后 2)通过raw.decode('ascii')然后decode_string.encode('utf8')将ascii转换为utf-8 谢谢你们.. :))
答案 1 :(得分:0)
我不能失去非utf-8字符。所以我选择将字符串转换为Binary,而不是。
根据你的例子,
>>> print subject
u'Math'
>>> d = {"ids": s_id, "subject": bson.Binary(str(subject))} # convert subject from unicode to Binary
你无法运行全文搜索,这是Mongo的最新功能,但它适用于其他所有功能。