json выводит все возвращаемые индексы вместо атрибутов - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь получить данные из моей базы данных mysql.

from flask_mysqldb import MySQL

cur = mysql.connection.cursor()
cur.execute(SELECT id FROM users)

mysql.connection.commit()
data = cur.fetchall()
return jsonify({"result": data})

Прямо сейчас мой код возвращает: {результат: [[1]]} Однако я хочу, чтобы мой результат показывал что-то вроде этого: {результат: {id: 1}} идентификатор является атрибутом внутри таблицы SQL и 1 - значение

Мне интересно, есть ли простой способ извлечения атрибута вручную из базы данных SQL или мне нужно вручную добавить что-то вроде этого data = {'id': data[0][0]} до обратной линии.

1 Ответ

0 голосов
/ 30 апреля 2020

Объект курсора имеет свойство description, которое предоставляет вам информацию о столбцах в наборе результатов. Это список кортежей, первым элементом которого является имя столбца.

Итак, вы можете сделать это:

cur.execute("SELECT id FROM users")
column_names = [col[0] for col in cur.description]
data = [dict(zip(column_names, row)) for row in cur.fetchall()]
return jsonify({"result": data})

Здесь data - это список словарей в формате {'column_name': value} .

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