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

问题描述 投票:0回答:1

现在我正在学习如何使用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

我搜索了这个值错误。流行的答案是,这是版本0.20.1中的错误。但我的azure-servicebus的版本是0.21.1。所以我试过的:

  1. azure-servicebus下调至0.20.2。
  2. 将代码拆分为发送方和接收方,然后单独运行它们。

两者都不起作用。有人可以给我一个暗示我犯了错误的地方吗?非常感谢!

python azure
1个回答
1
投票

这确实固定在0.20.2(我做了修复:))。如果您100%确定在0.21.1中有此错误,请在https://github.com/Azure/azure-sdk-for-python/issues中使用FULL堆栈跟踪和Python版本,操作系统等一些信息创建一个问题。

(我拥有这个包并在MS上工作)

© www.soinside.com 2019 - 2024. All rights reserved.