# -*- coding: utf-8 -*-
'''
Created on 2019年3月6日 @author: Administrator
'''
import sqlite3
import numpy as np
import io def adapt_array(arr): out = io.BytesIO()
np.save(out, arr)
out.seek(0)
return sqlite3.Binary(out.read()) def convert_array(text):
out = io.BytesIO(text)
out.seek(0)
return np.load(out) # 创建数据库连接对象
conn = sqlite3.connect('sample_database.db', detect_types=sqlite3.PARSE_DECLTYPES) # 连接到SQLite数据库
'''
sqlite3.PARSE_DECLTYPES
本常量使用在函数connect()里,设置在关键字参数detect_types上面。表示在返回一行值时,是否分析这列值的数据类型定义。如果设置了本参数,就进行分析数据表列的类型,并返回此类型的对象,并不是返回字符串的形式。 sqlite3.PARSE_COLNAMES
本常量使用在函数connect()里,设置在关键字参数detect_types上面。表示在返回一行值时,是否分析这列值的名称。如果设置了本参数,就进行分析数据表列的名称,并返回此类型的名称
'''
# 参数:memory:来创建一个内存数据库
# conn = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES) # Converts np.array to TEXT when inserting
sqlite3.register_adapter(np.ndarray, adapt_array) # Converts TEXT to np.array when selecting
sqlite3.register_converter("array", convert_array) x = np.arange(12).reshape(2, 6) # conn = sqlite3.connect(":memory:", detect_types=sqlite3.PARSE_DECLTYPES)
cursor = conn.cursor()
# 创建数据库表
cursor.execute("create table test (arr array)")
# 插入一行数据
cursor.execute("insert into test (arr) values (?)", (x,))
# 提交
conn.commit() cursor.execute("select arr from test")
data = cursor.fetchone()[0] print(data)
'''
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]]
'''
print(type(data))
'''
<class 'numpy.ndarray'>
'''
cursor.close() # 关闭Cursor
conn.close() # 关闭数据库

最新文章

  1. Digital root(数根)
  2. LeetCode:4_Median of Two Sorted Arrays | 求两个排序数组的中位数 | Hard
  3. Cron 表达式详解和案例
  4. WayPoint寻路
  5. VS2015预览
  6. MySQL binlog 的恢复操作
  7. 关于Java的异常
  8. 从PRISM开始学WPF(八)導航Navigation?
  9. 在PL/SQL中调用Oracle存储过程
  10. CodeForces - 1051D-简单DP
  11. 2018 Multi-University Training Contest 1 杭电多校第一场
  12. [LeetCode] 90.Subsets II tag: backtracking
  13. 测试那些事儿—selenium自动化实战之登录验证码处理
  14. Linux学习笔记之六————Linux常用命令之系统管理
  15. [Oracle][PDB]PDB restore/recover 过程记录
  16. Building a Keras + deep learning REST API(三部曲之一)
  17. Codeforces 799D Field expansion - 搜索 - 贪心
  18. gaia 开源多语言的pipeline 平台
  19. 高德地图打包后不能使用,高德导航View不显示,高德地图导航组件黑屏的问题;
  20. CSS属性书写顺序及命名规则

热门文章

  1. [51nod1383&amp;1048]整数分解为2的幂:DP
  2. struts2.3.20+spring4.0.2+hibernate4.3.4框架整合
  3. java 用redisTemplate 的 Operations存取list集合
  4. insert和insertSelective区别
  5. Centos 7 Redmine 安装,粘贴图片插件安装
  6. leetcode-mid-sorting and searching - 240. Search a 2D Matrix II -NO
  7. 【汇总】Wireshark 过滤规则
  8. .NET中使用EF6与连接MYSQL
  9. mybatisProxy
  10. C++:输入n个数,通过气泡法从小到大排列顺序(掌握不熟,还请谅解)