#python #json #pandas
#python #json #панды
Вопрос:
у меня есть этот json
"delivery_order":{
"created_at":{
"0":"2020-01-27 00:00:)0",
"1":"2020-07-04 00:00:00",
"2":"2020-05-26 00:00:00",
},
"status":{
"0":"delivery_completed",
"1":"pending",
"2":"pending",
}
},
в моем коде я сохраняю его следующим образом
order_data = pd.DataFrame(data['delivery_order'])
мой вопрос в том, как мне получить доступ к индексу 0 в json, чтобы json выглядел так
"delivery_order":{
"created_at":{
"0":"2020-01-27 00:00:)0",
},
"status":{
"0":"delivery_completed",
}
},
я попробовал это, и это работает
data['delivery_order']['created_at'][0]['status'][0]
но как мне получить доступ к индексу, не обращаясь к нему вручную? потому что иногда данные, отправленные с сервера, выглядят так
"delivery_order":{
"status":{
"0":"delivery_completed",
"1":"pending",
"2":"pending",
},
"created_at":{
"0":"2020-01-27 00:00:)0",
"1":"2020-07-04 00:00:00",
"2":"2020-05-26 00:00:00",
}
},
поэтому ручной доступ к нему по индексу, подобный этому, не сработает
data['delivery_order']['created_at'][0]['status'][0]
Ответ №1:
Поскольку вы используете pandas, используйте from_dict
:
# create df
df = pd.DataFrame.from_dict(d['delivery_order'], orient='columns')
print(df)
created_at status
0 2020-01-27 00:00:)0 delivery_completed
1 2020-07-04 00:00:00 pending
2 2020-05-26 00:00:00 pending
# get value by index
index = 1
df.iloc[index].to_dict()