python - 来自 json 输出的 python 中的变量赋值(通配符)

标签 python json wildcard

我目前正在处理 API 调用输出的一大块 .json。 我正在尝试获取此数据的某些部分并将它们分配给变量,以便我可以在某些重新格式化的消息中使用它们。

这是我的 .json 输出的示例:

{
  "content": {
    "HTTP": {
      "obsess": "1",
      "check_command": "check_http",
      "active_checks_enabled": "1",
      "process_performance_data": "1",
      "last_state_change": "1421870740",
      "last_event_id": "1"
    }
    "PING": {
      "obsess": "1",
      "check_command": "check_ping!100.0,20%!500.0,60%",
      "active_checks_enabled": "1",
      "process_performance_data": "1",
      "last_state_change": "1373404110",
      "last_event_id": "0",
    }
}

使用此输出,我为一些变量创建了一个变量赋值,但我无法弄清楚我应该如何使用通配符来替代“HTTP、PING 等”

service_name = (service['content']['[]']['last_state_change'])

这是可以简单完成的事情吗?在某些 json 调用中,我知道 .[] 可以用作通配符。我曾尝试用“*”和 [] 替换上面的“[]”,但尚未成功。

我的目标是从“HTTP”和“PING”所在的每个可能条目中获取相同的数据 block (在此示例中为“last_state_change”)。

任何帮助将不胜感激,如果仅通过替换某些东西是不可能的,我愿意接受任何建议。

最佳答案

您必须迭代生成的 dict:

changes = {}
for x in service['content']:
    changes[x] = service['content'][x]['last_state_change']

关于python - 来自 json 输出的 python 中的变量赋值(通配符),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46933429/

相关文章:

Python Button 绑定(bind)两个函数并使用绑定(bind)发送参数

json - Flutter-将JSON文件从url移动到 Assets 文件夹

json - jmeter 断言来验证 json 模式

perl - 如何将 Moose 对象转换为 JSON 以在 Catalyst 中使用?

python - Psycopg2 显示错误

在 Mac OS X 虚拟环境中安装 Python,其中包括我可以包含到 Xcode 中的框架?

python - Robot Framework 测试套件目录如何精确工作?

filter - 在 LDAP 搜索过滤器/查询中使用通配符

java - 返回类型为 'T' 且方法参数包含通配符时,返回类型与方法参数冲突

MySQL 通配符匹配任意字符或不匹配