Actualmente estoy desarrollando un proyecto que utiliza la biblioteca Twint python para raspar la web de Twitter. El problema es que la forma en que guarda los datos raspados no es válida en lo que respecta a los estándares de formato JSON. Todos los tweets raspados se guardan como objetos dentro del archivo JSON, y cuando trato de analizarlos aparece un error, ya que no están separados por comas y no están en una matriz.
{'key1': value1, 'key2': value2,} {'key1': value1, 'key2': value2,} {'key1': value1, 'key2': value2,} as opposed to: [ {'key1': value1, 'key2': value2,}, {'key1': value1, 'key2': value2,}, {'key1': value1, 'key2': value2,} ]Mi pregunta es, ¿puedo solucionar esto escribiendo un script que envuelva la lista de objetos en una matriz y separe los objetos con comas?
Creo que esta elección de formato es a propósito para que pueda transmitir los datos descargados a su aplicación en lugar de cargarlos y analizarlos todos a la vez (supongo que podría ser bastante grande si está raspando Twitter). Según su etiqueta node.js, asumo que desea realizar el análisis JSON en el backend, para eso hay una variedad de paquetes que podría usar, también se puede hacer con Rx/observables o podría implementarlo usted mismo básicamente transmita los datos hasta un salto de línea \n , luego analice y continúe la transmisión. Para su propia investigación, comience a buscar JSON streaming en npm, github, la web.
Reemplace } con }, ? ¿O es demasiado simple como solución?
Esto debería darle una matriz de objetos javascript analizados
const results = data.split("\n").map(line => JSON.parse(line))