Рекурсивный код дикта PythonPython

Программы на Python
Anonymous
 Рекурсивный код дикта Python

Сообщение Anonymous »

Я пытаюсь зацикливаться на всех элементах в файле JSON. Я загружаюсь в объект DICT Python, а затем я «хожу» по нему с рекурсией. Проблема в том, когда у меня есть такие куски, как это: < /p>

Код: Выделить всё

                     {
"layerId": "xxxx",
"url": "https://xxxx.com/server/rest/services/General/Boundaries/MapServer/2",
"name": "Grid",
"placeholder": "",
"searchFields": [
"GRID"
],
"displayField": "GRID",
"exactMatch": false,
"searchInCurrentMapExtent": false,
"panToScale": false,
"zoomScale": null,
"maxSuggestions": 6,
"maxResults": 6,
"type": "query"
}
Код отбрасывает «Zoomscale»: null ' Value в выходе.

Код: Выделить всё

def update_json(data, url_target, item_type, source_id=None, target_id=None):
def recursive_update(data):
if isinstance(data, dict):
return {k: recursive_update(v) for k, v in data.items()}
elif isinstance(data, list):
return [recursive_update(x) for x in data]
elif isinstance(data, str):
temp = data.replace('xxxx.com', url_target)
if item_type == 'app':
temp = temp.replace(source_id, target_id)
return temp
elif data is None:
return None
else:
return data
return recursive_update(data)
Если я изменю возвращаемое значение на что -то другое, чем нет Когда данные не являются , например, 'test_null' , затем значение ключа, 'Zoomscale ":" test_null "' , сохраняется. Почему оно снижает значение ключа, когда значение нет и как я могу сохранить ключевую ценность в словаре?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ue-is-none

Вернуться в «Python»