Używam Pythona do analizowania interfejsu API policyjnej policji w Wielkiej Brytanii. Chcę tylko przeanalizować odpowiedź JSON, którą otrzymuję, aby obliczyć, ile razy wystąpi pewne przestępstwo. To jest przykład odpowiedzi z interfejsu API.Liczba wystąpień elementu w elemencie JSON
{
category: "anti-social-behaviour",
location_type: "Force",
location: {
latitude: "53.349920",
street: {
id: 583315,
name: "On or near Evenwood Close"
},
longitude: "-2.657889"
},
context: "",
outcome_status: null,
persistent_id: "",
id: 22687179,
location_subtype: "",
month: "2013-03"
},
Za pomocą tego kodu
from json import load
from urllib2 import urlopen
import json
url = "http://data.police.uk/api/crimes-street/all-crime?lat=53.396246&lng=-2.646960&date=2013-03"
json_obj = urlopen(url)
player_json_list = load(json_obj)
for player in player_json_list:
crimeCategories = json.dumps(player['category'], indent = 2, separators=(',', ': '))
print crimeCategories
uzyskać odpowiedź jak ten
"anti-social-behaviour"
"anti-social-behaviour"
"anti-social-behaviour"
"anti-social-behaviour"
"drugs"
"drugs"
"burglary"
Jeśli zmieniłem na pętli
for player in player_json_list:
crimeCategories = json.dumps(player['category'], indent = 2, separators=(',', ': '))
print crimeCategories.count("drugs")
I wtedy uzyskać odpowiedź jak
0
0
0
0
1
1
0
Wyszukiwanie forów przez wiele godzin mi nie pomogło! Jakieś pomysły?
@martineau, dzięki, że wygląda lepiej;) –
Osobiście uważam, byłoby jeszcze lepiej, używając 'print (dict (c))'. – martineau
@martineau, dodano dane wyjściowe pprint poniżej –