Я пытаюсь зацикливаться на всех элементах в файле JSON. Я загружаюсь в объект DICT Python, а затем я «хожу» по нему с рекурсией. Проблема в том, когда у меня есть такие куски, как это: < /p>
{
"layerId": "xxxx",
"url": "https://xxxx.com/server/rest/services/G ... apServer/2",
"name": "Grid",
"placeholder": "",
"searchFields": [
"GRID"
],
"displayField": "GRID",
"exactMatch": false,
"searchInCurrentMapExtent": false,
"panToScale": false,
"zoomScale": null,
"maxSuggestions": 6,
"maxResults": 6,
"type": "query"
}
< /code>
Код отбрасывает «Zoomscale»: null 'value в выходе. < /p>
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)
< /code>
Если я изменю возвращаемое значение на что -то, кроме ни одного, когда данные нет, например, 'test_null', затем ключевое значение, «Zoomscale»: «test_null», сохраняется. Почему оно снижает значение ключа, когда значение нет, и как я могу сохранить значение ключа в словаре?
Подробнее здесь: https://stackoverflow.com/questions/793 ... ue-is-none
Рекурсивный код дикта Python ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение