С plistlib Я могу сериализовать структуру словаря/списка в plist. Это работает нормально, и я также могу прочитать его с той же библиотекой.Изменение plist в Python
Проблема в том, что словари имеют тип «_internalDict», и я, похоже, не могу их изменить. Например, например:
d = plistlib.readPlist('someplist.plist')
v = d['value'] # v is an _internalDict
v['val'] = 'new val' # works
del v # doesn't work
v = {'someotherkey': 'someothervalue'} # doesn't work either
Пальчик, похоже, не меняется. Помогите?
'del v' удаляет весь словарь, а' v = {...} 'создает новый словарь. Это то, что вы хотите, или пытаетесь удалить ключи из dict? '_InternalDict' - это просто подкласс' dict', который оставляет обычные операции 'dict' на месте. –
да, это то, что я хочу – pistacchio
Тогда у вас нет проблем, на мой взгляд; вы получаете ошибки при удалении всего словаря или при его замене новым? 'plistlib' может иметь дело с регулярными dicts просто отлично, кстати. –