16.01.2014 Views

Beginning Python - From Novice to Professional

Beginning Python - From Novice to Professional

Beginning Python - From Novice to Professional

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

CHAPTER 13 ■ DATABASE SUPPORT 293<br />

Listing 13-1. Importing Data in<strong>to</strong> the Database (importdata.py)<br />

import sqlite<br />

def convert(value):<br />

if value.startswith('~'):<br />

return value.strip('~')<br />

if not value:<br />

value = '0'<br />

return float(value)<br />

conn = sqlite.connect('food.db')<br />

curs = conn.cursor()<br />

curs.execute('''<br />

CREATE TABLE food (<br />

id TEXT PRIMARY KEY,<br />

desc TEXT,<br />

water FLOAT,<br />

kcal FLOAT,<br />

protein FLOAT,<br />

fat FLOAT,<br />

ash FLOAT,<br />

carbs FLOAT,<br />

fiber FLOAT,<br />

sugar FLOAT<br />

)<br />

''')<br />

field_count = 10<br />

markers = ', '.join(['%s']*field_count)<br />

query = 'INSERT INTO food VALUES (%s)' % markers<br />

for line in open('ABBREV.txt'):<br />

fields = line.split('^')<br />

vals = [convert(f) for f in fields[:field_count]]<br />

curs.execute(query, vals)<br />

conn.commit()<br />

conn.close()<br />

When you run this program (with ABBREV.txt in the same direc<strong>to</strong>ry), it will create a new file<br />

called food.db, containing all the data of the database.<br />

I’d really like <strong>to</strong> encourage you <strong>to</strong> play around with this example, using other inputs,<br />

adding print statements, and the like.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!