Azure队列使用python SDK接收:ValueError:无法将字符串转换为浮点:max age=31536000

Azure队列使用python SDK接收:ValueError:无法将字符串转换为浮点:max age=31536000,python,azure,Python,Azure,现在我正在学习如何使用python使用Azure处理实时数据。代码如下: from azure.servicebus import ServiceBusService from azure.servicebus import Message import traceback api_key = {'namespace': '###', 'policy_name': '####', 'policy_secret': '#####' } sbs = Se

现在我正在学习如何使用python使用Azure处理实时数据。代码如下:

from azure.servicebus import ServiceBusService
from azure.servicebus import Message
import traceback

api_key = {'namespace': '###',
       'policy_name': '####',
       'policy_secret': '#####'
       }

sbs = ServiceBusService(api_key["namespace"], shared_access_key_name=api_key["policy_name"], shared_access_key_value=api_key["policy_secret"])

msg = Message('Hello World!')

while True:
    sbs.send_queue_message('taskqueue', msg)
    print 'sending done'
    try:
        msg_rcv = sbs.receive_queue_message('taskqueue', peek_lock=True)
        if msg_rcv and msg_rcv.body:
            print 'Message received: {0}'.format(msg_rcv.body)
            msg_rcv.delete()
    except Exception:
        print traceback.print_exc()
发送部分工作正常,但我无法正确接收队列。回溯是:

Traceback (most recent call last):
  File "queue_sending.py", line 35, in <module>
  msg_rcv = sbs.receive_queue_message('taskqueue', peek_lock=True)
  ...
  ValueError: could not convert string to float: max-age=31536000
回溯(最近一次呼叫最后一次):
文件“queue_sending.py”,第35行,在
msg_rcv=sbs.receive_queue_message('taskqueue',peek_lock=True)
...
ValueError:无法将字符串转换为浮点:最大年龄=31536000
我在谷歌上搜索了这个值错误。流行的答案是这是0.20.1版中的一个bug。但是my
azure servicebus
的版本是0.21.1。因此,对于我所尝试的:

  • 将azure servicebus降级至0.20.2
  • 将代码拆分为发送方和接收方,然后分别运行它们
    两者都不起作用。谁能给我一个提示,我哪里出错了?非常感谢

    这确实在0.20.2中得到了修复(我做了修复:))。如果您100%确定0.21.1中存在此错误,请在中创建一个问题,并提供完整的stacktrace和一些信息,如Python版本、操作系统等


    (我拥有此软件包并在MS上工作)

    你说得对,这仍然是版本问题。我的默认python环境是Anaconda python 2.7,它的最新
    azure服务
    版本是0.20.1。我在纯python 2.7下的虚拟环境中编译了代码,但我在全局环境下对其进行了测试。它导致了失败。现在我在virenv中测试代码,一切都运行良好。