用Pymongo中文字符

时间:2015-03-05 07:38:27

标签: python mongodb mongodb-query pymongo

def readTags(collection,index):
    file = open("F:\\dship\\odps-dship\\test_tag_data.txt")
    while True:
        line = file.readline()
        if not line:
            break
        strArr = line.split("\t")[8].split(" ")
        for index in range(len(strArr)):
            #queryTag = strArr[index]
            print(collection.find_one({"tagList":{"$all",u"手拿包"}}))

当我的程序执行时,我得到了跟随异常

bson.errors.InvalidDocument: Cannot encode object: set(['$all', u'\u624b\u62ff\u5305'])

我该如何解决?

1 个答案:

答案 0 :(得分:2)

对象表示法的Python语法几乎与所有MongoDB官方文档中常用的JSON表示法完全相同。唯一的例外是"有序的dicts"实际应用的地方但在这种情况下不适用,因为没有需要特定订单的密钥。

所以它基本上只是遵循$all的文档实际所说的内容,而与Unicode支持无关:

print(collection.find_one({ "tagList": { "$all": [ u"手拿包" ] } }))

是否为您实际抛出错误的行的正确形式。您的MongoDB语法错误,与中文字符无关。