python - 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()
。
解决方案
你的问题的答案是locals()
。
你的问题的答案是dict
queue_dict = {'1': queue.Queue(), '2': queue.Queue(), '3': queue.Queue()}
queue = queue_dict[json["part"]]
推荐阅读
- python - 在 Windows 上使用 CUDA 的 OpenCV Python:DLL 加载失败
- r - 两组差异,数据处理
- c# - 在模态而不是重定向 C# MVC Ajax 中返回错误
- flutter - 使用 Navigator.push() 时的“无限循环”
- python - 从Arduino获取数据的问题它输出结束行字符Python
- powerbi - 条件格式矩阵中的总计 - Power bi
- laravel - 如何在 Cpanel 的子域 lumen/laravel 上安装免费 SSL?
- r - 在 R 中实现 BFS 算法的问题
- laravel - 雄辩的删除列
- ios - 从 iOS 和 GoogleDrive/iCloud 上传文件后的 inode/x-empty 内容类型