【发布时间】:2015-02-11 18:24:11
【问题描述】:
我的目标是编写 id 为二进制的 mongo 查询。我有十六进制数据,它被转换为二进制字符串并提供给查询。 我的代码:
b=binascii.a2b_hexdata('#hexadecimal string#')
query=_collection.find({'_id':b})
这很好用。但我想对任何查询进行概括。 我试过这个:
query_string={'a':"{'_id':"+b+"}"}
query=_collection.find(query_string)
这会引发错误。这很明显,因为我试图连接二进制和字符串(unicode)字符。所以我尝试用 utf-8 解码 b,但它会抛出错误。有没有办法连接二进制和字符串数据?
【问题讨论】:
-
哪个python版本?试试
b"{'_id':"+b+b"}"。 -
不是一个 mongo 人,但只是想指出 find 当前需要一个 dict,而您现在正试图向它传递一个字符串。这应该如何工作?
-
@mu 我的问题是如何连接二进制和字符串数据。我为反映您的要求而编辑的任何方式。我知道接受字典。
-
@jepio 我尝试了你的建议,但没有奏效。
-
通过
str将二进制数据转换为字符串(或以其他方式获取二进制数据的字符串表示形式)。
标签: python string concatenation binary-data