Я пытаюсь зацикливаться на всех элементах в файле JSON. Я загружаюсь в объект DICT Python, а затем я «хожу» по нему с рекурсией. Проблема в том, когда у меня есть такие куски, как это: < /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)
Если я изменю возвращаемое значение на что -то другое, чем нет Когда данные не являются , например, 'test_null' , затем значение ключа, 'Zoomscale ":" test_null "' , сохраняется. Почему оно снижает значение ключа, когда значение нет и как я могу сохранить ключевую ценность в словаре?
Я пытаюсь зацикливаться на всех элементах в файле JSON. Я загружаюсь в объект DICT Python, а затем я «хожу» по нему с рекурсией. Проблема в том, когда у меня есть такие куски, как это: < /p> [code] { "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" } [/code] Код отбрасывает «Zoomscale»: null ' Value в выходе. [code]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 "' , сохраняется. Почему оно снижает значение ключа, когда значение нет и как я могу сохранить ключевую ценность в словаре?
Я пытаюсь зацикливаться на всех элементах в файле JSON. Я загружаюсь в объект DICT Python, а затем я «хожу» по нему с рекурсией. Проблема в том, когда у меня есть такие куски, как это:
{
layerId : xxxx ,
url :
name : Grid ,
placeholder : ,...