¿Cómo uso Python o jq para combinar múltiples archivos JSON con columnas uniformes en un archivo CSV?
Estoy intentando hacer que la Ley Primaria de Fuente Americana sea más compatible con la Ley de Discapacidades de América (ADA), para que sea más complaciente para mi estudio.
La pregunta técnica está en el tema.
Los archivos fuente que estoy usando se encuentran aquí: https://www.courtlistener.com/api/bulk-data/opinions/wash.tar.gz
Un archivo JSON de muestra dentro de ese archivo (que contiene 52,565 Opiniones Judiciales de la Corte Suprema del Estado de Washington),
987095.json es un ejemplo con los siguientes “elementos” (quiero llevar los nombres de los elementos como nombres de columna mientras proporciono un nuevo ID para el recuento de registros; en lugar de la columna de ID de la base de datos fuente):
Usando Dadroit Viewer 1.5 Build 1935.appimage para ver los datos JSON de la forma más fácil para mí.
Extracté los siguientes datos (las opiniones inferiores tienen corchetes [] con 0-28 en ellos; y espero que cada JSON tenga diferentes números de opiniones citadas; cualquiera desde 0 hasta 1000 o más quizás); no sé el mayor número de casos citados en una Opinión Judicial.
Extraído del JSON:
resourceurl
id
absoluteurl
cluster
author
joinedby
authorstr
percuriam
datecreated
datemodified
type
sha1
pagecount
downloadurl
localpath
plaintext
html
htmllawbox
htmlcolumbia
htmlwithcitations
extractedby_ocr
opinions_cited (sub nodos) [0] - [28]
Necesito ayuda para fusionar el directorio (intenté varias soluciones encontradas en Google y StackOverflow para fusionar; ninguna de las que probé en mi CPU, memoria o tiempo ha demostrado funcionar sin tardar horas en dar error o sin producir nada al final).
¿Cómo puedo crear un gran CSV para cada carpeta de JSON (que contiene decenas de miles; en este ejemplo 54k) 1 JSON para cada fila en el CSV utilizando los nombres de los elementos JSON para crear columnas?
El script de StackOverFlow que estaba usando (el código se puede ver aquí para el error que publiqué en los comentarios):
import glob
import json
file_names = glob.glob('*.json')
json_list = []
for currfname in file_names:
with open(currfname) as currfobj:
json_list.append(json.load(currfobj))
with open('jsonmergeout.json', 'w') as outfile:
json.dump(json_list, outfile, indent=4)
El intento anterior produce el siguiente error:
ninguno
/Wash/json# ./json.merge.python.1.py
./json.merge.python.1.py: línea 4: error de sintaxis cerca del token inesperado ('
file_names = glob.glob(‘*.json’)’
./json.merge.python.1.py: línea 4:
davy.ai
Parece que estás intentando hacer que la Ley Primaria de Fuente Americana sea más compatible con la Ley de Discapacidades Americanas (ADA) para tu estudio. Estás usando las Opinion Judicial de la Corte Suprema del Estado de Washington encontradas en el archivo de courtlistener.com, y has extraído los siguientes datos de un archivo JSON de muestra (987095.json):
resource_url
id
absolute_url
cluster
author
joined_by
author_str
per_curiam
date_created
date_modified
type
sha1
page_count
download_url
local_path
plain_text
html
html_lawbox
html_columbia
html_with_citations
extracted_by_ocr
opinions_cited (sub nodos) [0] – [28]
Estás tratando de fusionar el directorio en un archivo CSV grande, con un archivo JSON por fila y los nombres de los elementos JSON como nombres de columna, pero no has tenido éxito. Has intentado usar el siguiente script de StackOverflow:
import glob
import json
file_names = glob.glob(‘*.json’)
json_list = []
for curr_fname in file_names:
with open(curr_fname) as curr_f_obj:
json_list.append(json.load(curr_f_obj))
with open(‘json_merge_out.json’, ‘w’) as out_file:
json.dump(json_list, out_file, indent=4)
Sin embargo, esto ha resultado en un error.
Es posible que necesites usar un script o enfoque diferente para lograr el resultado deseado. Puede que desees considerar hacer una pregunta más específica en StackOverflow u otro foro de programación para obtener ayuda con este problema.