Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola a todos,
Para un proyecto en marcha, estoy tratando de extraer datos históricos de varias estaciones meteorológicas de la NOAA y me gustaría ponerlos en una base de datos de Power BI. Mi principal objetivo es extraer datos de las principales ciudades del noreste de EE. UU., y mostrar las temperaturas medias diarias de los últimos años (digamos, una serie de datos desde 2010 hasta la actualidad).
Miré en el sitio web de la NOAA relevante, y fue un poco abrumador por cómo tirar de esto en Power BI: https://www.ncdc.noaa.gov/cdo-web/webservices/v2
GHCND:USW00014732 |
GHCND:USW00013739 |
GHCND:USW00014739 |
GHCND:USW00094823 |
GHCND:USW00014765 |
Luego mecanogravé la URL en básico, pero luego encontré un error:
Por cualquier razón, Power BI no pidió un token para autenticarme. ¿Hay alguna manera sencilla de decirle a Power BI que tengo un token donde puedo extraer estos datos de la NOAA? El token debe actuar como una autenticación, sin embargo, no se me pidió que escriba uno.
¡Muchas gracias por tu ayuda!
Peter
Solved! Go to Solution.
Hola @pwares
El token debe proporcionarse en el encabezado de la solicitud. He probado esto y funciona, sólo tiene que introducir su propio token en la parte superior. Archivo PBIX de ejemplo aquí.
let
api_url = "https://www.ncdc.noaa.gov/cdo-web/api/v2/datasets?stationid=GHCND:USW00014732&stationid=GHCND:USW00013739&stationid=GHCND:USW00014739&stationid=GHCND:USW00094823&stationid=GHCND:USW00014765",
token = "XXXXXXXXX",
Source = Json.Document(Web.Contents(api_url,
[
Headers = [token = token ,#"Content-Type"="application/json"]
]
)
),
#"Converted to Table" = Record.ToTable(Source),
Value = #"Converted to Table"{1}[Value],
#"Converted to Table1" = Table.FromList(Value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table1", "Column1", {"uid", "mindate", "maxdate", "name", "datacoverage", "id"}, {"uid", "mindate", "maxdate", "name", "datacoverage", "id"})
in
#"Expanded Column1"
saludos
Phil
Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.
Proud to be a Super User!
Hola @pwares
El token debe proporcionarse en el encabezado de la solicitud. He probado esto y funciona, sólo tiene que introducir su propio token en la parte superior. Archivo PBIX de ejemplo aquí.
let
api_url = "https://www.ncdc.noaa.gov/cdo-web/api/v2/datasets?stationid=GHCND:USW00014732&stationid=GHCND:USW00013739&stationid=GHCND:USW00014739&stationid=GHCND:USW00094823&stationid=GHCND:USW00014765",
token = "XXXXXXXXX",
Source = Json.Document(Web.Contents(api_url,
[
Headers = [token = token ,#"Content-Type"="application/json"]
]
)
),
#"Converted to Table" = Record.ToTable(Source),
Value = #"Converted to Table"{1}[Value],
#"Converted to Table1" = Table.FromList(Value, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Expanded Column1" = Table.ExpandRecordColumn(#"Converted to Table1", "Column1", {"uid", "mindate", "maxdate", "name", "datacoverage", "id"}, {"uid", "mindate", "maxdate", "name", "datacoverage", "id"})
in
#"Expanded Column1"
saludos
Phil
Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.
Proud to be a Super User!
El código proporcionado por PhilipTreacy solo da un resumen para mí, no datos meteorológicos diarios
Excelente, muchas gracias por la ayuda. Lo conchué en Power BI Advanced Editor y pude ver los datos. Esto es muy útil.
Hola @pwares
Debe especificar el parámetro de token en la dirección URL. Si hace clic en el vínculo que proporcionó que se supone que obtiene los datos de la API, le proporciona ese mensaje.
La documentación de la API indica que el token se debe pasar en el encabezado de solicitud, así que inténtelo. Inicie una nueva consulta en blanco en PBI y copie y pegue este código, con XXXXX para el token.
let
api_url = "https://www.ncdc.noaa.gov/cdo-web/api/v2/datasets?stationid=GHCND:USW00014732&stationid=GHCND:USW00013739&stationid=GHCND:USW00014739&stationid=GHCND:USW00094823&stationid=GHCND:USW00014765",
token = "XXXXX",
Source = Json.Document(Web.Contents(api_url,
[
Headers = [#"Authorization"="Bearer "&token,#"Content-Type"="application/json"]
]
)
)
in
Source
saludos
Phil
Si respondí a su pregunta por favor marque mi post como la solución.
Si mi respuesta ayudó a resolver su problema, déle un kudos haciendo clic en Thumbs Up.
Proud to be a Super User!
Hola @pwares ,
¿Está diciendo que la siguiente ventana de verificación no aparece?
Si es así, puede ir a Opciones y configuración -> Configuración del origen de datos, busque el origen de datos y borre el permiso e inténtelo de nuevo.
Saludos
Jay
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |