создание отдельного массива из существующих json django - PullRequest
0 голосов
/ 04 февраля 2012

У меня есть этот массив JSON:

[{'pk': 4L, 'model': u'logic.member', 'fields': {'profile': 3L, 'name': u'1', 'title': u'Mr', 'dob': datetime.date(1983, 1, 1), 'lastname': u'jkjk', 'redressno': u'jdsfsfkj', 'gender': u'm'}}, {'pk': 5L, 'model': u'logic.member', 'fields': {'profile': 3L, 'name': u'2', 'title': u'Mr', 'dob': datetime.date(1983, 1, 1), 'lastname': u'jkjk', 'redressno': u'jdsfsfkj', 'gender': u'm'}}]

Я хочу создать отдельный массив JSON только для свойства fields.

Что я пробовал:

memarr=[] 

       for index,a in data1:
          print index
          print a
          memarr[index]=a[index].fields

И выдает ошибку:

too many values to unpack

Пожалуйста, исправьте.

Ответы [ 2 ]

2 голосов
/ 04 февраля 2012

Прежде всего, data1 - это список, поэтому вы не можете распаковать его в 2 переменные.

Если вы хотите индекс, вы должны использовать что-то вроде enumerate.

Во-вторых, вы не можете назначить список с помощью индексации, если ключ не существует.Вы должны добавить или использовать другой допустимый метод вставки списка.

В-третьих, a[index].fields на самом деле не имеет смысла - в a нет ключа, который был бы связан с целочисленным индексом и fieldsэто не атрибут.

Возможно, вы ищете что-то вроде этого:

memarr = []
for index, a in enumerate(data1):
    memarr.append(a['fields'])
0 голосов
/ 04 февраля 2012

Так много всего плохого в этом фрагменте ...

В любом случае:

memarr = [a['fields'] for a in data]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...