【问题标题】:Concatenating string and binary data in python在python中连接字符串和二进制数据
【发布时间】: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


【解决方案1】:

在 mongo 查询表单中作为字典查询。例如:

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)

【讨论】:

    猜你喜欢
    • 2013-03-25
    • 2010-11-03
    • 2015-03-09
    • 1970-01-01
    • 2014-09-15
    • 2021-11-09
    • 2011-10-22
    相关资源
    最近更新 更多