listing13-1.py 737 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import sqlite3
  2. def convert(value):
  3. if value.startswith('~'):
  4. return value.strip('~')
  5. if not value:
  6. value = '0'
  7. return float(value)
  8. conn = sqlite3.connect('food.db')
  9. curs = conn.cursor()
  10. curs.execute('''
  11. CREATE TABLE food (
  12. id TEXT PRIMARY KEY,
  13. desc TEXT,
  14. water FLOAT,
  15. kcal FLOAT,
  16. protein FLOAT,
  17. fat FLOAT,
  18. ash FLOAT,
  19. carbs FLOAT,
  20. fiber FLOAT,
  21. sugar FLOAT
  22. )
  23. ''')
  24. query = 'INSERT INTO food VALUES (?,?,?,?,?,?,?,?,?,?)'
  25. field_count = 10
  26. for line in open('ABBREV.txt'):
  27. fields = line.split('^')
  28. vals = [convert(f) for f in fields[:field_count]]
  29. curs.execute(query, vals)
  30. conn.commit()
  31. conn.close()