Я не был уверен, что вы хотите опубликовать действительный JSON или какой-то другой вариант, но я сделал несколько предположений по этому поводу, главным образом, что голые объекты с ключами sent_id
и т. Д. Должны были находиться в массиве с ключом r
. Если у вас все в порядке с использованием некоторых циклов, вот что я сделал:
from json import dumps
# `df` is a pandas.DataFrame with your data
output = []
for (doc_id, doc_name), pgf_dataframe in df.groupby(['doc_id', 'doc_name']):
document = {'doc_id': doc_id, 'doc_name': doc_name}
paragraphs = []
for (pgf_id, pgf_data), r_dataframe in pgf_dataframe.groupby(['pgf_id', 'pgf_data']):
paragraph = {'pgf_id': pgf_id, 'pgf_text': pgf_data}
events = []
for i, row in r_dataframe.iterrows():
events.append({'sent_id': row['sent_id'], 'sent_data': row['sent_data'], 'label': row['label']})
paragraph['r'] = events
paragraphs.append(paragraph)
document['paragraphs'] = paragraphs
output.append(document)
# `output` is a list of "document" objects.
print(dumps(output))