将x.x.x.x字符串转换为列表地址(???)

时间:2020-03-19 14:18:15

标签: python string list dictionary key

这是一个很难解释的问题。我有一个字符串,看起来像是从json配置文件中提取的“ system.cpu.total.pct”。此特殊格式是我程序中其他位置所必需的,因此无法更改。

此“ 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"])

对任何任意字符串都适用吗?

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用:

if sourceSet == "system.cpu.total.pct":
    d = rawData['hits']['hits'][thisRecord]["_source"]
    for t in sourceSet.split('.'):
        d = d[t]

    dataArray.append(d)