gpt4 book ai didi

python - 返回 JSON 浮点值

转载 作者:行者123 更新时间:2023-11-30 22:19:56 25 4
gpt4 key购买 nike

我正在使用 Python 解析 JSON 文件。我试图解析的其中一个键有一个 float 值,并且我收到以下错误:TypeError:列表索引必须是整数,而不是 str。下面是代码、JSON 和完整的回溯。

代码:

import json

with open('output.json') as f:
data = json.load(f)

for host in data['ASSET_DATA_REPORT']['HOST_LIST']['HOST']:
print(host['VULN_INFO_LIST']['VULN_INFO']['CVSS_FINAL'])

JSON:

    {  
"ASSET_DATA_REPORT":{
"HOST_LIST":{
"HOST":[
{
"IP":{
"network_id":"0"
},
"TRACKING_METHOD":"EC2",
"ASSET_TAGS":{
"ASSET_TAG":[
"EC2 Running",
"IF - Database - MySQL"
]
},
"DNS":"i-xxxxxxx",
"EC2_INSTANCE_ID":"i-xxxxxx",
"EC2_INFO":{
"PUBLIC_DNS_NAME":"ec2-xxxxxxxx.amazonaws.com",
"IMAGE_ID":"ami-xxxxxx",
"VPC_ID":"vpc-xxxxxx",
"INSTANCE_STATE":"RUNNING",
"PRIVATE_DNS_NAME":"ip-xxxx.ec2.internal",
"INSTANCE_TYPE":"m3.xlarge"
},
"VULN_INFO_LIST":{
"VULN_INFO":[
{
"CVSS_FINAL":"3.6"
}
]
}
}
]
}
}
}

回溯:

Traceback (most recent call last):
File "json_format.py", line 11, in <module>
print(host['VULN_INFO_LIST']['VULN_INFO']['CVSS_FINAL'])
TypeError: list indices must be integers, not str

最佳答案

包含“CVSS_FINAL”键的字典实际上本身位于列表中。尝试:

print(host['VULN_INFO_LIST']['VULN_INFO'][0]['CVSS_FINAL'])

顺便说一句,如果你想在 Python 中将此值存储为 float 类型(而不是字符串),你可以这样做:

value = float(host['VULN_INFO_LIST']['VULN_INFO'][0]['CVSS_FINAL'])

关于python - 返回 JSON 浮点值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48955301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com