Я работаю со словарем, который содержит под-словари. Я хотел бы преобразовать это в пригодный для использования формат, чтобы я мог вернуть только желаемое значение / вывод.
РЕДАКТИРОВАТЬ - я должен добавить для контекста, что это текстовое приложение. Клавиша верхнего уровня соответствует определенному «разговору», в то время как подключи являются отдельными «сообщениями». Функция, которую я пытаюсь создать, должна иметь возможность возвращать текст самого нового «сообщения» из любого данного словаря «разговора», предоставленного в качестве входных данных.
Вот пример словаря:
mydict = {1005672: {4461048: {'body': 'Mnow test test', 'msg_id': 4461048},
4620511: {'body': 'test sms,test sms', 'msg_id': 4620511},
4620584: {'body': 'test sms', 'msg_id': 4620584},
4646648: {'body': 'test sms', 'msg_id': 4646648},
4646877: {'body': 'test sms', 'msg_id': 4646877},
5327736: {'body': 'testing again\r\n', 'msg_id': 5327736},
5332767: {'body': 'testing testing 1..2...3...', 'msg_id': 5332767},
5333204: {'body': 'testing the convID part...', 'msg_id': 5333204},
5333257: {'body': 'take 2!', 'msg_id': 5333257},
5333489: {'body': 'aaaaaaaaaaaand ACTION!', 'msg_id': 5333489},
5337141: {'body': 'does it work?', 'msg_id': 5337141},
5363443: {'body': 'Test', 'msg_id': 5363443},
5365638: {'body': 'testing again', 'msg_id': 5365638},
5366005: {'body': 'testing sms ID', 'msg_id': 5366005}}}
Это позволяет мне явно возвращать заданные c ключи, подобные этой (что является хорошим началом):
print(mydict[1005672][5366005])
Однако мне нужно написать функцию, которая может возвращать только текст «body» для элемента last (или самого нового). Например, я хотел бы, чтобы функция возвращала 'testing sms ID'
, для этого примера.
Я бы предположил, что способ go об этом будет сначала преобразовать в список, а затем срезать?
mylist = list(mydict.values())
myslice = mylist[-1:]
Однако, когда я это делаю, это не работает, и продолжает возвращать всю вещь (хотя, теперь в формате списка!)
Так что я хотел бы получить некоторые рекомендации о том, как это сделать - сначала нарежьте список, чтобы взять только последнюю строку, но затем, как бы Я go о захвате только текста между '' после тела?
Я ценю любой вклад в это. Я все еще учусь, поэтому я ценю любые полезные советы. Спасибо