создание списка словарей с питоном - PullRequest
0 голосов
/ 24 января 2019

Я пытался создать список словаря над циклом, но он переопределяет элементы dict на каждой итерации, поэтому я получаю список с одним словарем внутри.

for element in elements:
  title = elements.get('test')
  content = elements.get('content')
  post_dict['titre'] = title
  post_dict['content'] = content
  list_elements.append(post_dict)
  print(list_elements)

Ответы [ 4 ]

0 голосов
/ 24 января 2019

post_dict ссылается на тот же объект словаря, поэтому он перезаписывается.

Решение состоит в том, чтобы создать новый объект словаря:

for element in elements:
  d = {}
  title = elements.get('test')
  content = elements.get('content')
  d['title'] = title
  d['content'] = content
  list_elements.append(d)
  print(list_elements)
0 голосов
/ 24 января 2019

На каждой итерации вы должны создавать новый словарь, а не обновлять то же самое слово, что и у вас.

for element in elements:
  post_dict = dict()
  title = elements.get('test')
  content = elements.get('content')
  post_dict['titre'] = title
  post_dict['content'] = content
  list_elements.append(post_dict)
print(list_elements)
0 голосов
/ 24 января 2019

Опираясь на предыдущий ответ, вы, возможно, должны использовать элемент вместо элементов.В противном случае ваш элемент практически не используется в каждой итерации цикла

for element in elements:
  post_dict = {}
  title = element.get('test')
  content = element.get('content')
  post_dict['titre'] = title
  post_dict['content'] = content
  list_elements.append(post_dict)
print(list_elements)
0 голосов
/ 24 января 2019

Вы перезаписываете данные внутри единственного созданного вами диктанта.Вы должны создать новый dict в каждой итерации:

for element in elements:
  post_dict = {}
  title = elements.get('test')
  content = elements.get('content')
  post_dict['titre'] = title
  post_dict['content'] = content
  list_elements.append(post_dict)
  print(list_elements)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...