我有这个json文件,我想使用熊猫将其转换为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) "
}
]
}
当我使用以下功能read_json
时,
他给我返回了其中一个错误ValueError: arrays must all be same length
aquiestámeucó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)
我不知道他为什么看不到文件
答案 0 :(得分:1)
pandas
与数据表有关,具有重复的列标题。partes
和movimentacoes
的长度必须相同。
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_data\test1.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)
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)