【问题标题】:Trying to iterate through data in JSON尝试遍历 JSON 中的数据
【发布时间】: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


【解决方案1】:

amt + 1 行没有多大作用。要增加计数器,请使用amt += 1

【讨论】:

  • 谢谢!我对python有点陌生,完全忽略了这一点。
猜你喜欢
  • 2018-04-13
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-26
  • 1970-01-01
相关资源
最近更新 更多