Форум сайта python.su
Доброе время суток, пытаюсь выполнить пример из умной книжки:
def insert_tabl_wd():
weekdays=["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница",
"Суббота","Воскресенье"]
import psycopg2
db=psycopg2.connect("host='localhost' dbname='tvprogram' user='postgres' password='abcd'") # коннеект с БД
cu=db.cursor() # назначение курсора
cu.execute("""DELETE FROM wd;""") # УДАЛИТЬ все строки из таблицы wd
cu.executemany("""INSERT INTO wd VALUES (%s,%s);""", enumerate(weekdays))
db.commit()
db.close()
Офлайн
Везде используйте юникодные строки, т.е. добавьте букву “u” перед строками. А то что база у вас utf-8 это хорошо.
И еще в начале напишите: psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
Отредактировано (Окт. 4, 2011 13:23:14)
Офлайн
Спасибо за отклик!!! Сделал как вы сказали:
def insert_tabl_wd():
import psycopg2
db=psycopg2.connect("host='localhost' dbname='tvprogram' user='postgres' password='abcd'") # коннеект с БД
psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
weekdays=[u"Воскресенье",u"Понедельник",u"Вторник",u"Среда",u"Четверг",u"Пятница",
u"Суббота",u"Воскресенье"]
print weekdays
cu=db.cursor() # назначение курсора
cu.execute("""DELETE FROM wd;""") # УДАЛИТЬ все строки из таблицы wd
cu.executemany("""INSERT INTO wd VALUES (%s,%s);""", enumerate(weekdays)) # executemany - выполняет серию запросов или команд, подставляя параметры в заданный шаблон
# enumerate создает список пар номер-значение, напр. [(0,'a'), (1,'b'),(2,'c')]
cu.execute('select * from wd')
numrows=int(cu.rowcount) # количество записей, затронутых в ходе последнего запроса
print numrows
for x in range(0,numrows): # перебираем последовательно от 0 элемента до конца записей
row = cu.fetchone() # возвращает следующую запись (в виде последовательности) из результата запроса или ноне при отсутствии данных
print row[0], '-->', row[1]
y=+1
db.commit()
db.close()
insert_tabl_wd()
Отредактировано (Окт. 6, 2011 21:54:02)
Офлайн
Попробуйте так:
кодировку python скрипта смените на UTF-8, затем
в самое начало скрипта вставьте:
# -*- coding: utf-8 -*-
Офлайн
Большое спасибо, сделал так как вы написали и всё заработало !!!
Офлайн