У меня есть список списков в python, которые мне нужно преобразовать в json-словарь. Список выглядит следующим образом:convert python список из списка в словарь
[
['[{"name":"david","level":"k","xaxis":[[]],"yaxis":[[]],', '"count":[[2011, 6], [2012, 0], [2013, 11]]},'],
['{"name":"marshall","level":"n","xaxis":[[]],"yaxis":[[]],',
'"count":[[2008, 130], [2009, 53], [2010, 10], [2011, 17], [2012, 0], [2013, 142]]}]']
]
Что мне нужно, чтобы это было это:
{
[
{
"name": "david",
"level": "k",
"xaxis": [[]],
"yaxis": [[]],
"count":[[2011, 6], [2012, 0], [2013, 11]]
},
{
"name": "diana",
"level": "k",
"xaxis": [[]],
"yaxis": [[]],
"count":[[2011, 6], [2012, 0], [2013, 11]]
}
]
}
Так в основном, это будет словарь, содержащий вложенные списки, и каждый суб-лист, имеющий один словарь. Как это можно достичь с помощью того, что у меня есть?
ОБНОВЛЕНИЕ:
Итак, позвольте мне разбить его на шаги с целью ясности. Мне нужна структура данных, чтобы быть, как это (что я демпинг в файл .json):
[{
"name": "David",
"level": "s",
"xaxis": [
[]
],
"yaxis": [
[]
],
"count": [
[2008, 128],
[2009, 51],
[2010, 10],
[2011, 17],
[2012, 0],
[2013, 142]
]
}, {
"name": "Diana",
"level": "v",
"xaxis": [
[]
],
"yaxis": [
[]
],
"count": [
[2008, 11],
[2009, 0],
[2010, 1],
[2011, 2],
[2012, 0],
[2013, 6]
]
}]
Так как я строить это выглядит следующим образом:
Сначала у меня есть два lists-> имена и расчеты:
names = ['David', 'Diana']
calculations = [[[2011, 6], [2012, 0], [2013, 11]], [[2008, 130], [2009, 53], [2010, 10], [2011, 17], [2012, 0], [2013, 142]]]
Где «расчеты» - список списков списков.
Из этих двух списков, я создаю первоначально упомянутую структуру следующим образом:
import random
from compiler.ast import flatten
names_final = []
calculations_final = []
completed = []
for a in names:
names_final.append('{"name":"'.encode('utf-8')+a.encode('utf-8')+'","level":"'.encode('utf-8')+random.choice('abcdefghijklmnopqrstuvwxyz').encode('utf-8')+'","xaxis":[[]],"yaxis":[[]],'.encode('utf-8'))
for b in calculations:
calculations_final.append('"count":'.encode('utf-8')+str(b).encode('utf-8')+'},'.encode('utf-8'))
for i,j in map(None, names_final, calculations_final):
completed.append(flatten([i,j]))
Тогда, наконец, к заполненному списку, я делаю следующие изменения для того, чтобы получить то, что мне нужно:
completed[0][0]='['+completed[0][0]
completed[-1][-1]= completed[-1][-1][:-1]
completed[-1][-1]=completed[-1][-1]+']'
Это приводит к выходу, указанному в верхней части этой части. Мне нужно преобразовать это в объект json, чтобы он просматривался через браузер как объект json на основе запроса, определенного пользователем. Надеюсь, это прояснится. Что вы предлагаете?
Ваш предлагаемый вывод не является допустимым объектом JSON или действительным типом Python.(Это _is_ действительный набор Python, но я не думаю, что это то, что вы хотели.) Словарь не просто содержит значения; он содержит сопоставления от ключей к значениям. – abarnert
Вы правы. Мне нужно преобразовать его в объект json. – user2480542
Ну, это не действительный объект JSON, поэтому покажите нам, какой объект JSON вы _actually_ хотите получить. – abarnert