Dicts в python - это всегда «коллекция» «элементов»; каждый «элемент» представляет собой ключ и значение, разделенные двоеточием, а каждый элемент разделяется следующим запятой. Элемент не может иметь более одного ключа или значения, но вы можете иметь коллекции в качестве ключей или значений.
Глядя на ваш второй пример:
dict = {1: { p_id: p_instance_1,
p_id_2: p_ins_2}
2:{ p_in_this_cat_id: this isntance}}
внешнему диктовку нужна еще одна запятая, между концом первого элемента (с ключом 1
) и вторым (с ключом 2
).
Кроме того, не совсем понятно, что означает this instance
, но часто бывает так, что методы объектов передают сам объект в качестве первого параметра, и по соглашению это называется self
, но может быть дано любое имя (и это иногда делается для уменьшения путаницы, например, с метаклассами)
Наконец; голые слова, p_id
и т. д., редко действительны, если они не являются именем переменной (назначенной ранее) или атрибутом другого объекта (возможно, self.p_id
). Я не знаю, в этом ли проблема.