【发布时间】:2018-08-10 07:49:10
【问题描述】:
我有一个 REST API 用于处理所有收到的警察报告,我正在尝试遍历 GET 请求的结果。
import requests
import json
import time
query = "http://gismaps.wichita.gov/agsweb/rest/services/COWGIS/WPD_Public/MapServer/0/query?where=1%3D1&outFields=CATEGORY,ADDRESS,PBADDRESS,CASEADDRESS,CITY,STARTDATE,DOW,INCMONTH,MONTHHS,OFFENSE_CO,OFFENSE_DE,PLACE_DESC,CLASS_TYPE,Shape,INCREPORT,STARTDATET,STARTTIME&outSR=4326&f=json"
query_value = requests.get(query)
crime = query_value.json()
def search(num):
for i in range(1, num):
print(crime["features"][i]["attributes"]["CATEGORY"])
search(10)
此代码返回此数据:
AGG_ASSAULT
DISORDERLY
VANDALISM
DISORDERLY
DRUGS
DRUGS
OTHERTRAF_VIO
OTHERTRAF_VIO
LARCENY
但是当我运行这段代码时:
import requests
import json
import time
query = "http://gismaps.wichita.gov/agsweb/rest/services/COWGIS/WPD_Public/MapServer/0/query?where=1%3D1&outFields=CATEGORY,ADDRESS,PBADDRESS,CASEADDRESS,CITY,STARTDATE,DOW,INCMONTH,MONTHHS,OFFENSE_CO,OFFENSE_DE,PLACE_DESC,CLASS_TYPE,Shape,INCREPORT,STARTDATET,STARTTIME&outSR=4326&f=json"
query_value = requests.get(query)
crime = query_value.json()
def search(num):
amt = 0
for i in range(1, num):
#print(crime["features"][i]["attributes"]["CATEGORY"])
value = crime["features"][i]["attributes"]["CATEGORY"]
print(str(value))
if str(value) == "DRUGS":
amt + 1
print(amt, "matches")
search(10)
它返回“0 个匹配项”,即使它清楚地输出有 2 个报告的值为“DRUGS”,并且它返回给我 0。任何帮助将不胜感激
【问题讨论】:
-
print(str(value))是否打印所有相同的值? -
是的,我忘了从代码中删除它,它只是打印出犯罪的名称
-
“犯罪名称”?通过单击编辑按钮将输出添加到您的问题。还要在循环之前添加
print(crime["features"][:num])并添加其输出
标签: json python-3.x for-loop