我目前正在处理 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/