python-3.x - 如何使用另一个变量“组装”一个python变量名?
问题描述
从给定的库中,我会读取如下数据:
data = msg.chan6_raw
味精看起来像:
RC_CHANNELS {
time_boot_ms : 1730680,
chancount : 16,
chan1_raw : 1500,
chan2_raw : 1500,
chan3_raw : 1000,
chan4_raw : 1500,
chan5_raw : 1800,
chan6_raw : 1000,
chan7_raw : 1000,
chan8_raw : 1800,
chan9_raw : 0,
chan10_raw : 0,
chan11_raw : 0,
chan12_raw : 0,
chan13_raw : 0,
chan14_raw : 0,
chan15_raw : 0,
chan16_raw : 0,
chan17_raw : 0,
chan18_raw : 0,
rssi : 0
}
我的代码知道我想读取位于名为“number”的变量中的通道“6”。
我不能这样做:
data = 'msg.chan' + str(number) + '_raw'
但这是我们想要的结果。
所以问题是:我如何根据“数字”“组装”这个请求 - 以获取正确的数据?
解决方案
看起来RC_CHANNELS
对象是字典的形式。如果是这种情况,您应该能够这样做:
RC_CHANNELS.get(f"chan{number}_raw")
如果不是,那么您可能希望首先将您的消息放入该表单中,从而使这变得微不足道。msg
如果您需要帮助,请随时使用有关您的类型的信息更新您的问题。
所以你明白发生了什么:
dict
支持一个get
操作,它将获取给定键的值。密钥通常(但不总是)str
是 s,因此您可以推断出要查找的密钥的名称。- 'f-string' 是这样的字符串:
f"Some string with a {value}"
. 在这种情况下,它将自动格式化您的字符串,并拼接到变量的任何字符串表示形式中value
。因此,如果value = 1
它会导致"Some string with a 1"
. 这相当于"Some string with a {value}".format(value = value)
。
推荐阅读
- mongodb - is there a way to check if a given field exists in pyspark and mongodb?
- c - Using strtok and trying to store their values into an array
- python - 如何在 Elif Python 中添加多个值?
- java - Android:确保光标已正确初始化
- html - 我怎样才能使 div 100% 的窗口宽度同时父的宽度是 95.5%?
- asp.net-mvc - 如何在 mvc 5 应用程序中将 https 重定向到 http
- java - SpringApplicationBuilder 结合小型 SpringBoot 应用程序(模块化单体)
- javascript - aws lambda 中的archiver.js 内存泄漏
- python - 从 Python 2 调用 Python 3 脚本 + 传递参数 + 获取数据
- powershell - 脚本作为计划任务运行的不同结果