gpt4 book ai didi

Python:解析 JSON 时出现 Keyerror

转载 作者:行者123 更新时间:2023-11-28 22:40:56 29 4
gpt4 key购买 nike

我刚刚编写了一个程序来解析来自 api 的一些数据。该 API 以 JSON 格式返回数据。当我尝试解析它时,它给了我一个关键错误

Traceback (most recent call last):
File "test.py", line 20, in <module>
print(parsed_json['plain'])
KeyError: 'plain'

这是重要的代码部分(其余部分只是为了制作 url,工作得很好)

response = urllib.request.urlopen(url2).read()
strr = str(response)


if "plain" in strr:
parsed_json = json.loads(response.decode("UTF-8"))
print(parsed_json['plain'])
elif "INVALID HASH" in strr:
print("You have entered an invalid hash.")
elif "NOT FOUND" in strr:
print("The hash is not found")
elif "LIMIT REACHED" in strr:
print("You have reached the max requests per minute, please try again in one minute.")

我正在尝试获取普通字段中的数据。这是 API 的输出:

{
"REQUEST": "FOUND",
"739c5b1cd5681e668f689aa66bcc254c": {
"plain": "test",
"hexplain": "74657374",
"algorithm": "MD5X5PLAIN"
}
}

最佳答案

当您可以看到您试图在其中定位数据的 JSON 对象的嵌套结构时,就更容易看到发生了什么:

工作示例 #1 — 使用 Python 2.6.92.7.103.3.5 进行测试和 3.5.0

import json

json_string = '''
{
"REQUEST": "FOUND",
"739c5b1cd5681e668f689aa66bcc254c": {
"plain": "test",
"hexplain": "74657374",
"algorithm": "MD5X5PLAIN"
}
}
'''

if 'plain' in json_string:
parsed_json = json.loads(json_string)
print(parsed_json['739c5b1cd5681e668f689aa66bcc254c']['plain'])

'plain' 是 '739c5b1cd5681e668f689aa66bcc254c' 的 child


编辑

以下示例循环遍历 parsed_json 并检查每个键的长度是否为 32 个字符,并检查键中是否有子值“plain”。

工作示例 #2 — 使用 Python 2.6.92.7.103.3.5 进行测试和 3.5.0

import json
import re

def is_MD5(s):
return True if re.match(r"([a-f\d]{32})", key) else False

strr = '''
{
"REQUEST": "FOUND",
"739c5b1cd5681e668f689aa66bcc254c": {
"plain": "test",
"hexplain": "74657374",
"algorithm": "MD5X5PLAIN"
}
}
'''

parsed_json = json.loads(strr)

for key, value in parsed_json.items():
if is_MD5(key) and 'plain' in parsed_json[key]:
xHash = key
xPlain = parsed_json[key]['plain']

print('value in key "plain" in key "{0}" is "{1}"'.format(*[xHash,
xPlain]))

输出

the value of key "plain" in key "739c5b1cd5681e668f689aa66bcc254c" is "test"

关于Python:解析 JSON 时出现 Keyerror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33188546/

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