Простой Python. современный стиль программирования - читать онлайн бесплатно полную версию книги . Страница 354

Thud!,Terry Pratchett,2005

The Spellman Files,Lisa Lutz,2007

Small Gods,Terry Pratchett,1992

>>> text = '''title,author,year

... The Weirdstone of Brisingamen,Alan Garner,1960

... Perdido Street Station,China Miéville,2000

... Thud!,Terry Pratchett,2005

... The Spellman Files,Lisa Lutz,2007

... Small Gods,Terry Pratchett,1992

... '''

>>> with open('books.csv', 'wt') as outfile:

... outfile.write(text)

...

201

6. Используйте модуль sqlite3, чтобы создать базу данных SQLite books.db и таблицу

books, содержащую следующие поля: title (text), author (text) и year (integer):

>>> import sqlite3

>>> db = sqlite3.connect('books.db')

>>> curs = db.cursor()

>>> curs.execute('''create table book (title text, author text, year int)''')

<sqlite3.Cursor object at 0x1006e3b90>

>>> db.commit()

7. Считайте данные из файла books.csv и добавьте их в таблицу book:

>>> import csv

>>> import sqlite3

>>> ins_str = 'insert into book values(?, ?, ?)'

>>> with open('books.csv', 'rt') as infile:

... books = csv.DictReader(infile)

... for book in books:

... curs.execute(ins_str, (book['title'], book['author'], book['year']))

460

Приложение Д. Ответы к упражнениям

...

<sqlite3.Cursor object at 0x1007b21f0>

<sqlite3.Cursor object at 0x1007b21f0>

<sqlite3.Cursor object at 0x1007b21f0>

<sqlite3.Cursor object at 0x1007b21f0>

<sqlite3.Cursor object at 0x1007b21f0>

>>> db.commit()

8. Считайте и выведите на экран графу title таблицы book в алфавитном порядке:

>>> sql = 'select title from book order by title asc'

>>> for row in db.execute(sql):

... print(row)

...

('Perdido Street Station',)

('Small Gods',)

('The Spellman Files',)

('The Weirdstone of Brisingamen',)

('Thud!',)

Если вы хотите вывести на экран значение title, не пользуясь конструкциями