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

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介: 博主开始实习了,公司要求转Python,此博客用于记录我入库所遇到的问题,欢迎大家补充解决方法和遇到其他问题!!!(评论区留言,我会加在博客里)

目录

前言

问题总结

问题1

问题2

问题3

问题4

问题5

问题6

前言

博主开始实习了,公司要求转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 Server\n")

我的代码:

# 插入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


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


问题5

我的代码:

select TOP 100000 FROM [IPRCloud].[dbo].[TM_AP]

报错内容:


pymssql._pymssql.OperationalError: (156, b"Incorrect syntax near the keyword 'FROM'.DB-Lib error message 20018, severity 15:\nGeneral SQL Server error: Check messages from the SQL Server\n")

报错原因:‘From’ 附近的代码有问题


解决方法:不小心写掉了一个 * 号,一定要仔细!!!


select TOP 100000 * FROM [IPRCloud].[dbo].[TM_AP]

问题6

报错内容:


pymssql._pymssql.OperationalError: (8152, b'String or binary data would be truncated.DB-Lib error message 20018, severity 16:\nGeneral SQL Server error: Check messages from the SQL Server\n')

报错原因:引发此错误,则有一个或多个字段的长度不足以容纳要插入的数据,还包括TRIGGER中变量。


解决方法:


1.数据库中各字段长度设置;

2.相应表单设置的触发器;

3.打开即将插入的数据,查看异常长的数据以供参考

文章知识点与官方知识档案匹配,可进一步学习相关知识

Python技能树人工智能机器学习工具包Scikit-learn15086 人正在系统学习中



相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
相关文章
|
30天前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
|
7天前
|
数据采集 Web App开发 监控
Python爬虫:爱奇艺榜单数据的实时监控
Python爬虫:爱奇艺榜单数据的实时监控
|
28天前
|
数据采集 分布式计算 大数据
构建高效的数据管道:使用Python进行ETL任务
在数据驱动的世界中,高效地处理和移动数据是至关重要的。本文将引导你通过一个实际的Python ETL(提取、转换、加载)项目,从概念到实现。我们将探索如何设计一个灵活且可扩展的数据管道,确保数据的准确性和完整性。无论你是数据工程师、分析师还是任何对数据处理感兴趣的人,这篇文章都将成为你工具箱中的宝贵资源。
|
2月前
|
SQL 存储 PHP
解决高版本laravel/framework中SQLServer2008分页报错问题
【11月更文挑战第15天】在高版本的Laravel框架中,使用SQLServer 2008数据库进行分页操作时可能会遇到兼容性问题,导致报错。本文提供了两种解决方案:一是升级数据库版本至2012或更高,以提高对复杂查询的支持;二是通过自定义分页查询构建器,手动调整分页逻辑,使其适应SQLServer 2008的特性。具体实施步骤包括备份数据、安装新数据库版本、恢复数据,或创建自定义分页查询类并在模型中使用。这些方法能有效解决分页报错问题。
|
2月前
|
传感器 物联网 开发者
使用Python读取串行设备的温度数据
本文介绍了如何使用Python通过串行接口(如UART、RS-232或RS-485)读取温度传感器的数据。详细步骤包括硬件连接、安装`pyserial`库、配置串行端口、发送请求及解析响应等。适合嵌入式系统和物联网应用开发者参考。
62 3
|
2月前
|
SQL PHP 数据库
解决高版本laravel/framework中SQLServer2008分页报错问题
【11月更文挑战第6天】在高版本的 `laravel/framework` 中使用 SQL Server 2008 进行数据库操作时,可能会出现分页报错。这是由于 `laravel` 的分页机制与 SQL Server 2008 的某些特性不兼容所致。解决方法包括:1. 升级数据库版本;2. 自定义分页查询语句;3. 使用兼容包或插件;4. 修改 `laravel` 的分页逻辑。
|
2月前
|
图形学 Python
SciPy 空间数据2
凸包(Convex Hull)是计算几何中的概念,指包含给定点集的所有凸集的交集。可以通过 `ConvexHull()` 方法创建凸包。示例代码展示了如何使用 `scipy` 库和 `matplotlib` 绘制给定点集的凸包。
34 1
|
2月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
2月前
|
数据采集 JavaScript 程序员
探索CSDN博客数据:使用Python爬虫技术
本文介绍了如何利用Python的requests和pyquery库爬取CSDN博客数据,包括环境准备、代码解析及注意事项,适合初学者学习。
89 0
|
2月前
|
数据采集 存储 分布式计算
超酷炫Python技术:交通数据的多维度分析
超酷炫Python技术:交通数据的多维度分析