es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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 ('
./json.merge.python.1.py: línea 4:
file_names = glob.glob(‘*.json’)’

Tags:  , , , ,

Answer

  1. Avatar for 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.

Comments are closed.