Python - API en Python (coding ya hecho)

 
Vista:

API en Python (coding ya hecho)

Publicado por charlie12234 (1 intervención) el 07/07/2022 21:51:32
Hola que tal? Estoy intentando sacar datos de esta pagina a través de este código pero hay algo que me está fallando a la hora de descargarlo y pasarlo a excel. Donde pone API KEY AQUI es porque el la pagina tiene hecho un código API de R ya metido en su sistema. Gracias por la ayuda.
https://quickstats.nass.usda.gov

import json
import pandas as pd
import requests

api_key = "API KEY AQUI"

commo_to_items = {
"CORN": ["CORN, GRAIN - YIELD, MEASURED IN BU / ACRE", "CORN - ACRES PLANTED", "CORN, GRAIN - ACRES HARVESTED", "CORN, GRAIN - PRODUCTION, MEASURED IN BU"],
"SOYBEANS": ["SOYBEANS - YIELD, MEASURED IN BU / ACRE", "SOYBEANS - ACRES PLANTED", "SOYBEANS - ACRES HARVESTED", "SOYBEANS - PRODUCTION, MEASURED IN BU"],
}

def get_data(commo, items, year):
data = {
"key": api_key,
"source_desc": "SURVEY",
"commodity_desc": commo,
"year": year,
"short_desc": items,
"agg_level_desc": "COUNTY",
"format": "JSON"
}

r = requests.get("http://quickstats.nass.usda.gov/api/api_GET/", params=data)
try:
df = pd.DataFrame(json.loads(r.text)["data"])[["county_name", "year", "statisticcat_desc", "location_desc", "unit_desc", "state_name", "commodity_desc", "Value"]]
df = df.rename(columns={
"county_name": "county",
"state_name": "state",
"location_desc": "location",
"unit_desc": "unit",
"commodity_desc": "commodity",
"Value": "value"
})
return df
except Exception as e:
print(commo)
print(e)
print(r.content)
return None

dfs = []
for year in range(2019, 2021):
print(year)
for commo, items in commo_to_items.items():
df = get_data(commo, items, year)
if df is not None:
dfs.append(df)

df = pd.concat(dfs)
df.to_csv("excel_prueba.csv",index=False)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder