Замена значения во всех строках курсораPython

Программы на Python
Ответить
Anonymous
 Замена значения во всех строках курсора

Сообщение Anonymous »

Используя SQLite и Python 3.1, я хочу отображать данные о валюте в таблице HTML с помощью. шаблон, который принимает курсор в качестве параметра. Следовательно, все значения валют должны иметь 2 десятичных знака, но SQLite хранит их как тип с плавающей запятой (хотя в структуре указано десятичное число :-( ), поэтому некоторые из них необходимо преобразовать перед отображением (например, я хочу, чтобы 12,1 отображалось как 12,10).

Код выглядит примерно так (упрощен для иллюстрации)...

Код: Выделить всё

import sqlite3
con = sqlite3.connect("mydb")
con.row_factory = sqlite3.Row

cur = con.cursor()
cur.execute("select order_no, amount from orders where cust_id=123")

for row in cur:
row['amount'] = format(row['amount'],'%.2f')
Последняя команда выдает ошибку «# встроенный.TypeError: объект 'sqlite3.Row' не поддерживает назначение элементов»

Как решить проблему, из-за которой значения объекта строки не могут быть изменены? Могу ли я преобразовать курсор в список словарей (по одному для каждой строки, например, [{'order_no':1, 'amount':12.1}, {'order_no':2, 'amount':6.32}, ...]), а затем отформатировать значение 'amount' для каждого элемента? Если да, то как мне это сделать?

Есть ли лучшие решения для достижения моей цели? Будем благодарны за любую помощь.

ТИА,
Алан

Подробнее здесь: https://stackoverflow.com/questions/338 ... ursor-rows
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»