读取JSON文件并使用python-panda转换为CSV



我有这个json文件,我想用pandas 把它转换成CSV

{
"partes": [
{
"processo": "1001824-89.2019.8.26.0493",
"tipo": "Reqte: ",
"nome": "Sérgio Izaias Massaranduba  Advogada: Mariana Pretel E Pretel      ",
"cnpj_cpf": "Não encontrado",
"oab": "Não encontrado"
},
{
"processo": "1001824-89.2019.8.26.0493",
"tipo": "Reqda: ",
"nome": "CLARO S/A   ",
"cnpj_cpf": "Não encontrado",
"oab": "Não encontrado"
}
],
"movimentacoes": [
{
"processo": "1001824-89.2019.8.26.0493",
"data": "28/10/2019",
"tem_anexo": "",
"movimentacao": " Distribuído Livremente (por Sorteio) (movimentação exclusiva do distribuidor)  "
}
]
}

当我使用以下函数CCD_ 1时,他还给我一个错误ValueError: arrays must all be same length

aqui estámeu código:

import pandas as pd
import json
import os
os.chdir('C:\Users\Suporte\Desktop\AUT\autonomation')

df = pd.read_json('file.json')
df_ = df.to_csv('file.csv', sep=';',index=False)

我不知道他为什么不能阅读文件

  • 请记住,pandas是关于具有重复列标题的数据表
  • 这里提供的JSON作为一个整体,与表格数据不对应
  • 此JSON需要由单独的键读入
  • 或者,partesmovimentacoes必须具有相同的长度。
    • partes的长度value为2,而movimentacoes为1
  • 给定以下数据,在名为test1.json的文件中

数据:

{
"partes": [{
"processo": "1001824-89.2019.8.26.0493",
"tipo": "Reqte: ",
"nome": "Sérgio Izaias Massaranduba  Advogada: Mariana Pretel E Pretel      ",
"cnpj_cpf": "Não encontrado",
"oab": "Não encontrado"
}, {
"processo": "1001824-89.2019.8.26.0493",
"tipo": "Reqda: ",
"nome": "CLARO S/A   ",
"cnpj_cpf": "Não encontrado",
"oab": "Não encontrado"
}
],
"movimentacoes": [{
"processo": "1001824-89.2019.8.26.0493",
"data": "28/10/2019",
"tem_anexo": "",
"movimentacao": " Distribuído Livremente (por Sorteio) (movimentação exclusiva do distribuidor)  "
}
]
}

代码:

from pathlib import Path
import pandas as pd
import json
# path to file
p = Path(r'c:some_path_to_datatest1.json')
# read the JSON file in
with p.open('r') as f:
data = json.loads(f.read())
# create the dataframe
df_partes = pd.DataFrame.from_dict(data['partes'])
print(df_partes)
processo     tipo                                                                  nome         cnpj_cpf              oab
1001824-89.2019.8.26.0493  Reqte:   Sérgio Izaias Massaranduba  Advogada: Mariana Pretel E Pretel        Não encontrado  Não encontrado
1001824-89.2019.8.26.0493  Reqda:                                                           CLARO S/A     Não encontrado  Não encontrado
df_movimentacoes = pd.DataFrame.from_dict(data['movimentacoes'])
print(df_movimentacoes)
processo        data tem_anexo                                                                         movimentacao
1001824-89.2019.8.26.0493  28/10/2019             Distribuído Livremente (por Sorteio) (movimentação exclusiva do distribuidor)
# save to csv
df_partes.to_csv('partes.csv', index=False)
df_movimentacoes('moviementacoes.csv', index=False)
  • 如果JSON有很多键,请考虑制作一个数据帧字典,如下所示:
df_dict = {key: pd.DataFrame.from_dict(data[key]) for key in data.keys()}
# Access a specific dataframe just like a regular dictionary
df_dict['partes']
# save to csv
for key in df_dict.keys():
df_dict[key].to_csv(f'{key}.csv', index=False)

最新更新