栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python加载数据入库SqlServer报错问题总结(持续更新,欢迎补充)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python加载数据入库SqlServer报错问题总结(持续更新,欢迎补充)

目录
  • 前言
  • 问题总结
    • 问题1
    • 问题2
    • 问题3
    • 问题4

前言

博主开始实习了,公司要求转Python,此博客用于记录我入库所遇到的问题,欢迎大家补充解决方法和遇到其他问题!!!(评论区留言,我会加在博客里)

问题总结 问题1

报错内容:

(156, b"Incorrect syntax near the keyword 'group'.DB-Lib error message 20018, severity 15:nGeneral SQL Server error: Check messages from the SQL Servern")

我的代码:

# 插入sql语句
sql = "insert into test4 (name,group) values (%s,%s)"
#执行插入操作
cursor.executemany(sql,dict)
db.commit()

报错原因:自定义字段名与数据库中的默认字段冲突,keyword ‘group’

解决办法:更改数据库列名(例如改为 “groups”)和 代码更改为groups

问题2

报错内容(数据框中的列数与SQL Server表中的列数列名相同,仍然出现以下错误):

more placeholders in sql than params available
#翻译:sql中的占位符多于可用的参数,错误原因少加了一些参数导致数据无法存入数据库

我的代码:

# 插入sql语句
sql = "insert into test4 (name,groups) values (%s,%s)"
#执行插入操作
cursor.executemany(sql,dict)
db.commit()

报错原因:dict列表的数据格式有问题

解决方法:executemany(sql,dict)方法的模板字符串的参数,是一个列表,列表中的每一个元素必须是元组!!! 例如: [(1,‘小明’),(2,‘zeke’),(3,‘琦琦’)] 或 [(1,‘小明’,2,‘zeke’,3,‘琦琦’)]

问题3

报错内容:

executemany() takes exactly 2 positional arguments (3 given)
#翻译:executemany()只接受2个位置参数(给定3个)

报错原因:executemany()只接受2个位置参数(而我给3个)

解决方法:参数只给两个(如果两个参数都必须要,先存入一个列表在传参)

问题4

报错内容:

the JSON object must be str, bytes or bytearray, not NoneType
#翻译:JSON对象必须是str、bytes或bytearray,而不是NoneType

报错原因:JSON对象必须是str、bytes或bytearray,而不是NoneType

解决方法:现在是一个字典,只需要用’’'符号将它转换成字符串就可以了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/467997.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号