2 回答

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個贊
jsonpath-ng 可以幫助您解決這個問題。
from jsonpath_ng.ext import parse
found = parse(f"$..Settings").find(data)
if found:
for i in found:
if ''.join(i.value[1].values()) != '0':
print(i.value[0]['AN'])

TA貢獻(xiàn)1783條經(jīng)驗(yàn) 獲得超4個贊
在代碼中:
for each in j['result']['result']:
if (find_only(each['Settings'][1], 0)) != json.loads("0"):
find_all(each['Settings'][0], 0)
我實(shí)際上看到,您的情況始終是True,因?yàn)槟鷽]有返回任何東西find_only()。
我不知道,你為什么要使用 level 和這么多遞歸函數(shù)。雖然根據(jù)您發(fā)布的數(shù)據(jù)很容易提取結(jié)果。請找到下面的代碼。
response2 = requests.request("POST", url, data=payload2, headers=headers)
j = json.loads(response2.text)
for each in j['result']['result']:
if each['Settings'][1]['T7'] not in ["0", 0]:
print(each['Settings'][0]['AN'])
如果您的響應(yīng)數(shù)據(jù)不太復(fù)雜,請發(fā)布確切的解決方案。
如果您有多個鍵名,請查看以下代碼:
response2 = requests.request("POST", url, data=payload2, headers=headers)
j = json.loads(response2.text)
def find_all(item):
if isinstance(item, dict):
for k in item:
return item[k]
# If item is non dict and you want to return this as well on `True`.
# Uncomment below commented lines.
# else:
# item
def find_only(item):
if isinstance(item, dict):
for k in item:
return item[k]
for each in j['result']['result']:
if (find_only(each['Settings'][1])) != str(json.loads("0")):
print(find_all(each['Settings'][0]))
添加回答
舉報