Call API วิธีเขียน loop meta next ใน Python อย่างไร ติดปัญหา loop meta next เจอค่า Null ครับ
แบ่งเป็น code 2 ชุดครับ (เป็นรูปภาพครับและลง code ครับ)
1. call api status 200
2. เอาค่า meta next ไป loop ต่อ status 200 แต่ติดเจอค่า null ครับ ทั้งๆที่มีข้อมูลอยู่ครับ
Code (Python call api CODE1)
import requests
import json
url = "https://api.threatstream.com/api/v2/intelligence/?&q=xxxx"
# api_key ="apikey"
# user = "user"
headers = {
"Content-Type": "application/json",
"Authorization": "apikey " + user + ":" + api_key
}
response = requests.get(url, verify=False, headers=headers)
data = response.json()
print(json.dumps(data, indent=4))
if (response.status_code == 200):
print("status_code = " + str(response.status_code) + " The request was a success!")
elif (response.status_code == 404):
print("status_code = " + str(response.status_code) + " Result not found!")
Code (Response call api CODE1)
"meta": {
"total_count": 1201,
"offset": 0,
"limit": 1000,
"took": 174,
"next": "/api/v2/intelligence/?q=%28%28status%3D%27active%27%29+and+%28confidence+%3E%3D+100%29+and+%28country+%3D+TH%29+or+%28country+%3D+AD%29%29&search_after=1480970530887%2C292500861&limit=1000"
}
}
status_code = 200 The request was a success!
Code (Python loop meta next CODE2)
import requests
import json
# base url
base_url = 'https://api.threatstream.com'
api_key ="apikey"
user = "user"
headers = {
"Content-Type": "application/json",
"Authorization": "apikey " + user + ":" + api_key
}
# Query data
next = "/api/v2/intelligence/?q=%28%28status%3D%27active%27%29+and+%28confidence+%3E%3D+100%29+and+%28country+%3D+TH%29+or+%28country+%3D+AD%29%29&search_after=1452851400110%2C47783443&limit=1000"
while True:
final_url = base_url + next
response = requests.get(final_url, headers=headers, verify=False)
data = response.json()
print(json.dumps( data, indent=4))
with open('get.json', 'w') as json_file:
json.dump(data, json_file, indent=4)
if (response.status_code == 200):
print("status_code = " + str(response.status_code) + " The request was a success!")
elif (response.status_code == 404):
print("status_code = " + str(response.status_code) + " Result not found!")
Code (Response loop meta next CODE2)
"meta": {
"total_count": 1201,
"offset": 0,
"limit": 1000,
"took": 136,
"next": null
}
}
status_code = 200 The request was a success!
API จะใช้แบบนี้ครับ
1. เมื่อ call api มาได้
2. หลังจาก call api มาได้ ให้นำ meta next ส่วนนี้ไปทำ loop parameter ต่อครับ
ซึ่งได้ทำตามที่แนะนำ แต่เจอค่า null ครับ