【发布时间】:2020-06-30 16:44:16
【问题描述】:
这是一个很难解释的问题。我有一个看起来像“system.cpu.total.pct”的字符串,我从 json 配置文件中提取。我的程序的其他地方需要这种特殊格式,所以我无法更改它。
这个“system.cpu.total.pct”指定了我有兴趣从 metricbeat(在 Elasticsearch 中)中提取的字段。
我需要把它转换成一个列表地址(?这是怎么称呼它的?),这样我就可以从我称之为“rawData”的数据库结果数组中找出一些东西。现在我正在这样做:
if sourceSet == "system.cpu.total.pct":
dataArray.append(rawData['hits']['hits'][thisRecord]["_source"]['system']['cpu']['total']['pct'])
但这显然不好,因为结果是硬编码的。
我怎样才能写出类似的东西
dataArray.append(rawData['hits']['hits'][thisRecord]["_source"]["system.cpu.total.pct"])
这适用于任意字符串吗?
有什么建议吗?谢谢!
【问题讨论】:
-
嗨,你能澄清一下代码的实际作用吗?
system.cpu.total.pct会变成什么? -
“这显然不好,因为结果是硬编码的” - 您可以使用
query_str.split('.')来获取元素,然后遍历对字典的get()方法的调用。
标签: python string list dictionary key