首页 > 解决方案 > python中是否有等效于get()的方法?

问题描述

我在 json 中有一个消息序列,它们包含一个名为 的字段part,它是一个从 0 到 2 的整数。我有三个消息队列,而 的值part决定了我将消息发送到哪个队列。

这是我当前的代码。

output0 = queue.Queue()
output1 = queue.Queue()
output2 = queue.Queue()

json = json.loads('{"test": "message", "part": "2"}')
part = int(json["part"])

if part == 0:
    output0.put(json)

elif part == 1:
    output1.put(json)

elif part == 2:
    output2.put(json)

我想用类似的东西来简化它。

chooseQueue = "output" + str(json["part"])
chooseQueue.put(json)

它为我服务这个错误AttributeError: 'str' object has no attribute 'put'

在 R 中,我可以通过使用as.formula()或将字符串用作变量名get()

标签: pythonpython-3.x

解决方案


你的问题的答案是locals()

你的问题的答案是dict

queue_dict = {'1': queue.Queue(), '2': queue.Queue(), '3': queue.Queue()}
queue = queue_dict[json["part"]]

推荐阅读