我有这个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需要由单独的键读入
- 或者,
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_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)