簡體   English   中英

遍歷嵌套的 JSON object 並在整個過程中獲取值

[英]Iterate through nested JSON object and get values throughout

在 API 項目上工作,我試圖從 API output 獲取所有重定向 url,例如https://urlscan.io/api/v1/result/39a4fc22-39df-4fd5-ab913-21

我試圖從中提取網址的示例:

"redirectResponse": {
  "url": "https://www.coke.com/"

我目前有以下代碼:

import requests
import json
import time

#URL to be scanned
url = 'https://www.coke.com'

#URL Scan Headers
headers = {'API-Key':apikey,'Content-Type':'application/json'}
data = {"url":url, "visibility": "public"}
response = requests.post('https://urlscan.io/api/v1/scan/',headers=headers, data=json.dumps(data))

uuid = response.json()['uuid']
responseUrl = response.json()['api']

time.sleep(10)

req = requests.Session()
r = req.get(responseUrl).json()
r.keys()

for value in  r['data']['requests']['redirectResponse']['url']:
    print(f"{value}")

我收到以下錯誤: TypeError: list indices must be integers or slices, not str 不確定解析嵌套 json 以獲得所有重定向 URL 的最佳方法是什么。

redirectResponse並不總是出現在requests中,因此必須編寫代碼來處理它並繼續進行。 在 Python 中,通常使用try / except來完成:

for obj in r['data']['requests']:
    try:
        redirectResponse = obj['request']['redirectResponse']
    except KeyError:
        continue  # Ignore and skip to next one.
    url = redirectResponse['url']
    print(f'{url=!r}')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM