我有在Python(V1)运行与3.6.4版本的Azure的功能环境。我试图把简单的字符串输出存储队列通过标准语法分离的消息:
for SomeStrVar in ListOfStrVars:
outputQueue = open(os.environ['outputQueueItem'],'w')
outputQueue.write(SomeStrVar)
outputQueue.close()
其中outputQueueItem是该函数的配置的输出队列中。什么情况是,而不是在目标队列中的消息X号结束了的我只得到了最后一个是在列表中。尽管文件句柄打开和关闭列表中的每个元素似乎是相同的消息被重写一遍又一遍的在队列中。
对我来说,这是不正常的行为,但我必须说,我是新来的Python,可能是我在这里的东西监督。
关于如何把这个写成预期运行任何建议高度赞赏。在那之前,我切换到直接使用QueueService类。
在此先感谢,SVET
输出绑定在函数的执行,这就是为什么你只看到的是最后一个条目的端部处理;它是唯一一个功能主机知道。
相反,在循环,尝试生成一个JSON数组,然后设置,要在最后的输出值。所以,你写出来的东西像['SomeValue1','SomeValue2','SomeValue3']
出作为绑定的一部分。然后,主机将看到阵列和与每个值的创建的消息。
我不是一个Python的专家,但这样的事情:
arr = { "a", "b", "c", "d" }
output = "["
for i in arr:
output += "'%s'," % i
output = output[:-1]
output += "]"
# write to the output binding
f = open(os.environ['output'], 'w')
f.write(output)