2015-02-11 4 views
-2

Моя цель - написать mongo-запросы, где id является двоичным. У меня есть шестнадцатеричные данные, которые преобразуются в двоичную строку и передаются в запрос. мой код:Конкатенация строки и двоичных данных в python

b=binascii.a2b_hexdata('#hexadecimal string#') 
query=_collection.find({'_id':b}) 

Это прекрасно работает. Но я хочу обобщить это для любого запроса. Я попытался это:

query_string={'a':"{'_id':"+b+"}"} 
query=_collection.find(query_string) 

Это бросает ошибку. Это очевидно, поскольку я пытаюсь объединить двоичные и строковые (unicode) символы. Поэтому я попробовал декодирование b с помощью utf-8, но он выдает ошибку. Есть ли способ объединить двоичные и строковые данные?

+0

Какая версия python? Попробуйте 'b '{' _ id ':" + b + b "}" '. – jepio

+0

не парень-монго, но просто хотел указать, что find принимает dict в настоящее время, в то время как вы сейчас пытаетесь передать ему строку. Как это должно работать? –

+0

@jepio python 3.4 – fhulprogrammer

ответ

0

В запросе формы запроса манго в качестве словаря. например:

b=binascii.hexdata('/string/') 
query={'id':b} 
#if you want to add another condition like a.Status 
query['a.status']=/your value/ 
result=_collection.find(query) 
Смежные вопросы