Я использую django 1.8, Python 2.7.5, django-datatables-view 1.2 и datatables 1.10.6. При попытке использовать columndefs и columns.render я получаю следующее сообщение об ошибке:Python создать dict из списка списков
Предупреждение: Запрошенный неизвестно ...
Я посмотрел документацию по этому here и в основном разобрался, что DataTables не имеет ни малейшего представления о том, какие данные я являюсь потому что он не может его найти. Так что я смотрел на то, как был возвращаются данные:
{
"recordsTotal": 176,
"recordsFiltered": 176,
"draw": 0,
"data": [
[
109,
"Hostname1",
"1.1.1.1",
"Excluded",
"Down"
],
[
116,
"Hostname2",
"2.2.2.2",
"Excluded",
"Up"
],
...
],
"result": "ok"
}
Так что я работал с DataTables перед использованием PHP и для того, чтобы работать с колонкой Защиты вам нужен ключ: пары значений, так что вы можете определить "data": "Key"
что, очевидно, это не. Я думаю, что я сузил, что строит готовые результаты этого:
def prepare_results(self, qs):
data = []
for item in qs:
data.append([self.render_column(item, column) for column in self.get_columns()])
return data
Я не могу за жизнь мне понять, как преобразовать этот список списков в словарь, который возвращает результаты следующим образом:
{
"recordsTotal": 176,
"recordsFiltered": 176,
"draw": 0,
"data": [
{
"Rest Id": "109",
"Host Name": "Hostname1",
"Ip Address": "1.1.1.1",
"Mode": "Excluded",
"State": "Down"
},
{
"Rest Id": "116",
"Host Name": "Hostname2",
"Ip Address": "2.2.2.2",
"Mode": "Excluded",
"State": "Up"
},
...
],
"result": "ok"
}
Я понимаю, что я мог бы сделать то, что я пытаюсь сделать с Dict понимания, но я не могу понять способ получить его именно так, как я ищу, чтобы иметь выход вернулся. Я также должен полагать, что есть лучший способ сделать это, чем делать понимание по спискам после того, как он уже подготовлен. Любая помощь будет оценена по достоинству. Заранее спасибо.
Когда я пытаюсь добавить эту функцию perpare_results выше, она сообщает мне, что 'global name 'datas' не определен'. Когда я пытаюсь добавить список полей и возвращать '[dict (zip (keys, d)) для d в data [" data "]]' он говорит мне, что индексы списка должны быть целыми числами, а не str' – beardedeagle
Что такое переменная, которая содержит все данные, которые вы напечатали в своем вопросе? – FunkySayu
Это должны быть только «данные». См. [Здесь] (https://bitbucket.org/pigletto/django-datatables-view/src/d816956c433d3e0cd3392632759cdb6b7867e394/django_datatables_view/base_datatable_view.py?at=master#cl-174) Линии 174-240, где происходит магия, но данные выглядят так, как будто они подготовлены в функции 'prepare_results'. – beardedeagle