Body.ScrollTop возвращает 0 в Safari, когда тело является элементом прокрутки, а не HTML

Принципиальная разница между списками python и кортежами является изменчивостью, которая не имеет отношения к представлениям JSON, если вы не планируете изменять внутренние члены списка JSON, а в текстовой форме. Просто переверните списки, которые вы вернетесь в кортежи. Если вы не используете какие-либо пользовательские декодеры объектов, единственными структурированными типами данных, которые вы должны учитывать, являются объекты JSON и массивы, которые выходят как питоны и списки.

def tuplify(listything):
    if isinstance(listything, list): return tuple(map(tuplify, listything))
    if isinstance(listything, dict): return {k:tuplify(v) for k,v in listything.items()}
    return listything

Если вы специализируетесь на декодировании , или хотите, чтобы некоторые массивы JSON были списками python, а другие - кортежами python, вам нужно будет обернуть элементы данных в dict или кортеж, который аннотирует информацию о типе. Это само по себе является лучшим способом повлиять на поток управления алгоритмом, чем на ветвление, основанное на том, что ли это список или кортеж (или какой-либо другой повторяемый тип).

0
задан Robin Knight 7 March 2019 в 11:33
поделиться