Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

379
Vistas
La función para importar datos JSON a hojas de cálculo de Google no funciona cuando la API contiene " | "

Estoy tratando de importar datos JSON a las hojas de Google usando una API de wikidata.

Sin embargo, uno de los símbolos que se utilizan en esta API es la barra vertical: | . Se usa como "y". Por ejemplo, si quiero importar datos tanto en inglés como en griego, entonces tengo que usar " | ".

URL de API de ejemplo: https://www.wikidata.org/w/api.php?action=wbgetentities&props=labels&languages=en|el&format=json&ids=Q192151

ingrese la descripción de la imagen aquí

Observe el uso de | en la url api entre en y el.

Uso una función personalizada llamada importJSON que se puede encontrar aquí

Cuando pego la url api CON el | para importar los datos json a mi hoja de Google, aparece un error:

ingrese la descripción de la imagen aquí

El error dice que está en la línea 139, que es esto en el script:

 var jsondata = UrlFetchApp.fetch(url);

PERO si NO contengo el " | " en la url de la API, funciona bien:

ingrese la descripción de la imagen aquí

¿Cómo puedo importar los datos JSON de la API CON EL "|"?

No sé mucho sobre codificación, así que si alguien pudiera modificar el script personalizado que vinculé arriba, o decirme, ¿qué debo agregar al script para que funcione?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Necesitas codificar la url.

Pruebe esta alternativa de función json de importación ligera

 function myFunction(url='https://www.wikidata.org/w/api.php?action=wbgetentities&props=labels&languages=en|el&format=json&ids=Q192151') { const res = UrlFetchApp.fetch(encodeURI(url)); Logger.log(res.getContentText()) const obj = JSON.parse(res.getContentText()); var result = [] for (let p in obj.entities['Q192151'].labels) { var o = obj.entities['Q192151'].labels[p] result.push([o.language,o.value]) } Logger.log(result) return(result) }

ingrese la descripción de la imagen aquí

codificar

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda