I have this JSON data set consisting of meteorite landings and I want to find the meteorite landing with the highest mass in the last 10 years.
JSON sample:
[
{
"name": "Aachen",
"id": "1",
"nametype": "Valid",
"recclass": "L5",
"mass": "21",
"fall": "Fell",
"year": "1880-01-01T00:00:00.000",
"reclat": "50.775000",
"reclong": "6.083330",
"geolocation": {
"type": "Point",
"coordinates": [
6.08333,
50.775
]
}
},
{
"name": "Aarhus",
"id": "2",
"nametype": "Valid",
"recclass": "H6",
"mass": "720",
"fall": "Fell",
"year": "1951-01-01T00:00:00.000",
"reclat": "56.183330",
"reclong": "10.233330",
"geolocation": {
"type": "Point",
"coordinates": [
10.23333,
56.18333
]
}
},
My code is the following. I have got to the point to get the date range of last 10 years but not able to link the mass within the date range.
import json, datetime
from dateutil.relativedelta import relativedelta
f = open('nasadata.json')
data = json.load(f)
start_date = datetime.datetime.now() - relativedelta(years = 10)
end_date = datetime.datetime.now()
for item in data:
year = item.get('year')
if year is not None:
year = datetime.datetime.strptime(year, "%Y-%m-%dT%H:%M:%S.%f")
name = item.get('name')
mass = item.get('mass')
if year is not None and year >= start_date and year <= end_date:
max_mass = max(mass)
print(max_mass)
How do I iterate through JSON to get the maximum mass meteorite name and mass values within the date range of 10 years?