python pypyodbc 使用 access数据库笔记

import pypyodbc


def open_con():
    path = r'I:\\OtherCode\\test.mdb'  # 数据库文件
    conn_str = 'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=' + path  # 绝对路径
    conn = pypyodbc.win_connect_mdb(conn_str)
    cursor = conn.cursor()
    return conn, cursor


def close_con(conn, cursor):
    conn.close()
    cursor.close()

# 基本操作
    sql = ''
    conn, cursor = open_con()
    cursor.execute(sql)
    # 获取数据,column_data是一个二维数组
    column_data = []
    for row in cursor:
        column_data.append(row)
    # 获取所有的列名,column_name是一个键值对集合
    column_name = []
	for i in range(0, cursor.description.__len__()):
        dic = dict()
        dic["name"] = cursor.description[i][0]
        column_name.append(dic)
    # 获取行中指定列名的值
    for row in cursor:
            table_name = row["芯片名称"]
    close_con(conn, cursor)

注意事项:
1. 使用时发现.accdb格式的文件无法连接
2. Access数据库中使用模糊查询条件为 [column_name] like '*字符串*',但在Python中使用pypyodbc查询时要写成[column_name] like '%字符串%',否则查不到结果

疑问:遍历cursor时row直接加入已数组,此时row看起来是个只包含值的数组,但row又可以以列名获取指定列的值,不像是个简单的数组,何解?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值