Преобразовать результат запроса sql в массив JSON в python - PullRequest
0 голосов
/ 07 мая 2020

Результат, который я получил от SQLite в Python, выглядит так:

{"John", "Alice"}, {"John", "Bob"}, {"Jogn", "Cook"} ......

Я хочу преобразовать результат в формат JSON следующим образом:

{
    "Teacher": "John",
    "Students": ["Alice", "Bob", "Cook" .....]
}

I использовал GROUP_CONCAT для объединения всех имен студентов и следующего кода:

row_headers = [x[0] for x in cursor.description] #this will extract row headers
result = []
for res in cursor.fetchall():
    result.append(dict(zip(row_headers, res)))

Я смог получить этот результат:

{
    "Teacher": "John",
    "Students": "Alice, Bob, Cook" 
}

Как я могу преобразовать студентов в формат массива?

Ответы [ 2 ]

1 голос
/ 07 мая 2020

Если в вашей версии sqlite включено расширение JSON1 , это легко сделать в чистом виде SQL:

SELECT json_object('Teacher', teacher,
                   'Students', json_group_array(student)) AS result
FROM ex
GROUP BY teacher;

Пример DB Fiddle

0 голосов
/ 07 мая 2020

Вы можете просто result["Students"] = result["Students"].split(", ").

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...