#python
Вопрос:
Я хочу получить данные из таблицы базы данных в формате ключ:значение. Но, используя SQL-запрос, я получаю значение только в формате кортежа.
Вот мой код:
query = "SELECT * FROM `stock_" str(
user_id) "` INNER JOIN product ON stock_" str(
user_id) ".product_id=product.id WHERE product.category=" category
" AND product.sub_category =" sub_category
cursor.execute(query)
records = cursor.fetchall()
print(records)
И вот результат:
(11, datetime.datetime(2020, 1, 23, 2, 7, 59),10,500,400,100,20.0)
и мой ожидаемый результат:
{
"id": 11,
"expiry_date": "2020-07-01",
"quantity": 10,
"mrp": 500,
"selling_price": 400,
"discount_prize": 100,
"discount_percent": 20.0
}
Комментарии:
1. Почему вы ожидаете такого результата?
fetchall
возвращает список кортежей.2. Хорошо. есть ли какой-нибудь другой выход? мне нужен вывод с соответствующим именем столбца
Ответ №1:
Вы можете использовать cursor.description
для получения имен полей, а затем использовать понимание списка для создания списка словарей с результатами запроса.
Это должно дать вам что-то близкое к желаемому результату.
records = cursor.fetchall()
fields = [field[0] for field in cursor.description]
data = [dict(zip(fields, record)) for record in records]