Добавьте объект на один уровень выше в pandas json

#python #json #pandas

Вопрос:

Я новичок в json и pandas и хочу вывести свои данные в следующей схеме, но я не уверен, как добавить ведущие «результаты».

Мой фрейм данных:

 Name     Id    Qty   Value
thing1   123   10    12.5
thing2   456   20    15.4
thing3   789   40    84.2
 

Мой код:

 json_output = df.reset_index().to_json(orient='record')
 

Мой вывод Json:

 [{"id":456,
  "name":"thing2",
  "qty":20,
  "value":15.4
 },
 "id":123,
  "name":"thing1",
  "qty":10,
  "value":12.4
 },
  "id":789,
  "name":"thing3",
  "qty":40
  "value":84.2
 }
]
 

Моя схема Json, которую я хочу:

 results:

     id:

     name:

     qty:

     value:
 

Комментарии:

1. итак id: name: , и т. Д. Карта в списке значений?

2. да , поэтому в начале моего списка сразу после [я хочу «результаты»:, затем идентификатор: имя: и т. Д. Между фигурными скобками. как я уже сделал. Я просто хочу, чтобы слово «результаты» было в верхней части всего

Ответ №1:

Попробуй это:

 import pandas as pd
import json

tmp = [('thing1', 123, 10, 12.5),
            ('thing2', 456, 20, 15.4),
            ('thing3', 789, 40, 84.2),
            ]

df = pd.DataFrame(tmp, columns=['Name', 'Id','Qty', 'Value'], )
df_dict = df.to_dict(orient='records')
final_dict = {'results': df_dict}
json_output = json.dumps(final_dict)