Значение Python в 2D словаре - PullRequest
0 голосов
/ 14 марта 2019

У меня есть следующий словарь, и я хотел бы добавить еще один массив к 'CorrectionsAll'.Я попытался добавить вариант, но я не мог получить то, что мне нужно.Может ли кто-нибудь помочь мне с логикой.

Dict1 = {'ShpmtID': 123, 'PickupDate': '2016/01/01 00:00:00', 'EstimatedDeliveryDate': '2016/01/10 00:00:00', 'OrigSic': 'LJB', 'DestSic': 'XCF', 'CorrectionHistory': [{'key': 405013, 'CorrectionsAll': [{'CorrChngDesc': 'Commodity Line Changed'}]}]}

Хотел добавить "Линия скидки изменена" следующим образом:

{'ShpmtID': 123, 'PickupDate': '2016/01/01 00:00:00', 'EstimatedDeliveryDate': '2016/01/10 00:00:00', 'OrigSic': 'LJB', 'DestSic': 'XCF', 'CorrectionHistory': [{'key': 405013, 'CorrectionsAll': [{'CorrChngDesc': 'Commodity Line Changed'}, {'CorrChngDesc': 'Discount Line Changed'}]}]}

Копировать комментарий :пробовал эти два варианта:

Вариант-1:

Dict1["CorrectionHistory"]["CorrectionsAll"].append({'CorrChngDesc': 'Discount Line Changed'})  

Вариант-2:

Dict1["CorrectionsAll"].append({'CorrChngDesc': 'Discount Line Changed'})

Ответы [ 2 ]

2 голосов
/ 14 марта 2019

Вы просто получаете доступ к нужному списку, а затем добавляете к нему

Dict1['CorrectionHistory'][0]['CorrectionsAll'].append({'CorrChngDesc': 'Discount Line Changed'})

Выходы:

{'OrigSic': 'LJB', 'PickupDate': '2016/01/01 00:00:00', 'DestSic': 'XCF', 'ShpmtID': 123, 'CorrectionHistory': [{' ключ ': 405013,' CorrectionsAll ': [{' CorrChngDesc ':' Товарная линия изменена '}, {' CorrChngDesc ':' Дисконтная линия изменена '}]}],' EstimatedDeliveryDate ':' 2016/01/10 00:00 : 00' }

0 голосов
/ 14 марта 2019

Я попробовал эти два варианта: Вариант 1: Dict1 ["CorrectionHistory"] ["CorrectionsAll"]. Append ({'CorrChngDesc': 'Линия скидок изменена'})

Option-1 не будет работать, потому что "CorrectionAll" - это не элемент "CorrectionHistory", а список. Этот список, хотя и является его элементом.

Dict1["CorrectionHistory"][0]["CorrectionsAll"] # Use [0] to go inside this list !

Вариант 2: Dict1 ["CorrectionsAll"]. Append ({'CorrChngDesc': 'Линия скидки изменена'})

Вариант-2 тоже не будет работать, потому что Dict1["CorrectionAll"] не существует. Опять же, это не прямой элемент, но я думаю, что теперь вы можете понять, почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...