2017-02-09 2 views
1

Я пытаюсь заменить ключевые слова в словаре. Но я могу сделать для простого dict не для сложного/вложенного dict.Как заменить имена ключей ключей в python вложенных dict

{ 
"Team": { 
    "DataState": "A", 
    "GID": "0021500038", 
    "TID": "1610612758", 
    "PTS": "103", 
    "FBPTS": "8", 
    "PTSIP": "46", 
    "BgLd": "12", 
    "TIMREM": "0", 
    "TFLS": "7", 
    "TeamLine": [{ 
     "DataState": "A", 
     "GID": "0021500038", 
     "TID": "1610612758", 
     "PER": "1", 
     "PTS": "31", 
     "FLS": "5" 
    }, { 
     "DataState": "A", 
     "GID": "0021500038", 
     "TID": "1610612758", 
     "PER": "14", 
     "PTS": "0", 
     "FLS": "0" 
    }] 
}} 

Я хочу переустановить GID CODE. Итак, как я могу это сделать?

+0

здесь: http://stackoverflow.com/questions/41765897/how-to-assign-a-value-to-a-string –

ответ

0

Быстрая и грязная, учитывая, что d ваш ДИКТ:

import ast 
new_d = ast.literal_eval(str(d).replace("'GID':","'CODE':")) 
  • новообращенный ДИКТ как строка
  • заменить цитируемые значения
  • преобразовывают обратно строку как Dict используя literal_eval

, что это не очень академический я признаю, но это супер просто и не заботится о вложенности.

0

nested_thing["Team"]["Teamline"][i]["GID"] = CODE должно быть то, что вы хотите, где i = 0 для первой GID и 1 для второго

(Added, есть также nested_thing["Team"]["GID"] в верхней части)

Смежные вопросы