python 基础教程 13数据库支持
2017-08-21 16:16
591 查看
数据库应用程序示例:
基于USDA的营养数据实验室提供的数据:https://www.ars.usda.gov/nutrientdata 点击下面的链接
点击download链接, 下载标题为Abbreviated下方的ASCII链接所指向的ASCCII格式的zip文件,取里面的ABBREV.txt文本文件,该文件数据每一行都有一个数据记录,字段以脱字符(^)进行分割, 数字字段直接包含数字,而文本字段包括波浪号(~)括起来的字符串值
将数据导入数据库:
对数据库进行查询:
将书上的sys.argv[1]改为了kcal <= 100 AND fiber >=10或其他sql查询条件,不用命令行的形式运行,该程序为一次性程序。
基于USDA的营养数据实验室提供的数据:https://www.ars.usda.gov/nutrientdata 点击下面的链接
点击download链接, 下载标题为Abbreviated下方的ASCII链接所指向的ASCCII格式的zip文件,取里面的ABBREV.txt文本文件,该文件数据每一行都有一个数据记录,字段以脱字符(^)进行分割, 数字字段直接包含数字,而文本字段包括波浪号(~)括起来的字符串值
将数据导入数据库:
#coding: utf-8 ''' Created on 2017年8月20日 @author: Leoi ''' #importdata.py import sqlite3 #convert将每一行分解为多个字段 def convert(value): if value.startswith('~'): return value.strip('~') if not value: value = '0' return float(value) conn = sqlite3.connect('food.db') #创建一个数据库,不存在则生成 curs = conn.cursor() #创建一个光标conne.cursor() try: curs.execute(''' CREATE TABLE food( id TEXT PRIMARY KEY, desc TEXT, water FLOAT, kcal FLOAT, protein FLOAT, fat FLOAT, ash FLOAT, carbs FLOAT, fiber FLOAT, sugar FLOAT ) ''') except: pass query = 'INSERT INTO food VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' for line in open(r'C:\Users\Leoi\Desktop\python code\ABBREV.txt'): fields = line.split('^') vals = [convert(f) for f in fields[:10]] #此处修改为10,因为每个表有10个数据 curs.execute(query, vals) #执行sql的INSERT语句将文本字段中的值插入到数据库中 conn.commit() conn.close()
对数据库进行查询:
#coding: utf-8 #food_query.py import sqlite3, sys conn = sqlite3.connect('food.db') curs = conn.cursor() #游标,用于执行查询和检查结果 query = 'SELECT * FROM food WHERE %s' % 'kcal <= 100 AND fiber >=10' print query curs.execute(query) names = [f[0] for f in curs.description] for row in curs.fetchall(): for pair in zip(names, row): print '%s: %s' % pair print
将书上的sys.argv[1]改为了kcal <= 100 AND fiber >=10或其他sql查询条件,不用命令行的形式运行,该程序为一次性程序。
相关文章推荐
- <<Python基础教程>>学习笔记 | 第13章 | 数据库支持
- python基础教程_学习笔记22:数据库支持
- python基础教程总结13——网络编程,
- <<Python基础课程>>学习笔记 | 文章13章 | 数据库支持
- Python系列视频教程: Django【13讲】第七讲 数据库使用1
- python基础教程_学习笔记13:标准库:一些最爱——sys
- Python系列视频教程: Django【13讲】第八讲 数据库使用2
- python基础教程总结12——数据库
- Python系列视频教程: Django【13讲】第九讲 数据库使用多对一映射
- Python系列视频教程: Django【13讲】第11讲 数据库多对多映射
- python基础教程之python消息摘要算法使用示例
- python基础教程_学习笔记11:魔法方法、属性和迭代器
- Python基础教程——1基础知识
- Python基础教程——2列表和元组
- python基础教程之popen函数操作其它程序的输入和输出示例
- python入门基础教程01 Python概述
- Python 入门基础序列教程
- 4000 python numpy 基础教程
- Python基础-项目-day4 model 建立数据库表名
- Python系列视频教程: Django【13讲】第一讲 Django安装