DataFrame до JSON дает абсурдный вывод - PullRequest
0 голосов
/ 27 января 2020

У меня есть этот код

    eventSummary = {}
    eventSummary['jobClassID'] = data['jobClassID'].split()
    eventSummary['modelID'] =data['modelID'].split()
    eventSummary['startDate'] = pd.to_datetime(start).date().strftime("%Y-%m-%d").split()
    eventSummary['hourlySummary']=merged_df.to_json(orient = 'records')
    dataF = pd.DataFrame(eventSummary)
    dataF.to_json(path_or_buf = '*\merged2.json', orient="records")

, который дает мне json вот так:

{

"jobClassID":"NorthernRegion|FarNorthDistrict|GeneralDuties|Constable|FIR|Senior|Lead|5",
"modelID":"4",
"startDate":
"2019-01-01",
"hourlySummary":
"[{\"Day\":1,\"Hour\":0,\"Month\":1,\"priority\":3,\"Count\":3,\"Hourly Season\":1.5589041096,\"Weekly Season\":1.9205974843,\"Monthly Season\":2.0497311828,\"Noise Factor\":0.6517894485,\"groupId\":0,\"K (Service)\":0.6955185685,\"Theta (Service)\":10924.8330481261,\"K (Travel)\":0.6819906983,\"Theta (Travel)\":5694.9711557023}]

}

Но Я хочу, чтобы вывод был таким: {

"jobClassID":["NorthernRegion|FarNorthDistrict|GeneralDuties|Constable|FIR|Senior|Lead|5"],
"modelID":["4"],
"startDate":["2019-01-01"],
"hourlySummary":[
                  {"Day":1,"Hour":0,"Month":1,"priority":3,"Count":3,"Hourly Season":1.5589041096,"Weekly Season":1.9205974843,"Monthly Season":2.0497311828,"Noise Factor":0.6517894485,"groupId":0,"K (Service)":0.6955185685,"Theta (Service)":10924.8330481261,"K (Travel)":0.6819906983,"Theta (Travel)":5694.9711557023}]

}

Как этого добиться?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 января 2020
eventSummary['jobClassID'] = [data['jobClassID'].split()]
eventSummary['modelID'] = [data['modelID'].split()]
eventSummary['startDate'] = [pd.to_datetime(start).date().strftime("%Y-%m- 
 %d").split()]
eventSummary['hourlySummary']= [merged_df.to_dict(orient='records')]
dataF = pd.DataFrame(eventSummary)
dataF.to_json(path_or_buf = '*\merged12.json', orient="records", lines = True)

Этот код дает ожидаемые результаты.

Спасибо за ваши усилия, все.

0 голосов
/ 27 января 2020

to_json возвращает строку, а не словарь, который вам нужен. Вместо этого следует использовать метод to_dict.

...