搭建asp虚拟主机网站wordpress同分类文章

news/2025/10/8 20:58:32/文章来源:
搭建asp虚拟主机网站,wordpress同分类文章,浪琴手表网站,中国工业互联网公司排名碰到的问题 上传Datafrane格式的数据到数据库 会碰见很多错误 举几个很普遍遇到的问题(主要以SqlServer举例) 这里解释下 将截断字符串或二进制数据 这个是字符长度超过数据库设置的长度 然后还有字符转int失败 或者字符串转换日期/或时间失败 这个是碰到的需要解决的最多的问…碰到的问题 上传Datafrane格式的数据到数据库 会碰见很多错误 举几个很普遍遇到的问题(主要以SqlServer举例) 这里解释下 将截断字符串或二进制数据 这个是字符长度超过数据库设置的长度 然后还有字符转int失败 或者字符串转换日期/或时间失败 这个是碰到的需要解决的最多的问题 当然仅代表个人意见和碰到的数据而言 先来看看使用pands进行上传数据库 import pandas as pd from sqlalchemy import create_engine# 连接数据库 # 因为本机是使用windows进行验证登录数据库 所以不需要用户和密码 data pd.read_excel(test.xlsx) conn create_engine(mssqlpymssql://服务器名/数据库名) # name为表名 dtype{} 如果数据库中未存在表 所有nvarchar将自动设置为max nvarchar(MAX) data.to_sql(nametablename, if_existsappend, conconn, schemadbo,indexFalse, dtype{}) conn.dispose() 我们先看看如果数据存在以上出现的错误报错情况 不能将所有错误展现出来 只会报第一次出现的错误 字符串长度过长的错误 这个就是我所构建的数据 作为参照给大家看看 接下来看下其他的链接方式所报错 按照insert语句插入 这里说名下因为连接方式不一样 分为pymssql 和 pyodbc链接方式 第一种pyodbc方式连接数据库 第一种:一次性全部插入数据相当于我们的insert table values(),() import pyodbc import pandas as pd# 使用pyodbc链接数据库并进行上传 data pd.read_excel(test.xlsx) conn pyodbc.connect(rDriver{SQL Server};Server服务器名;Database数据库名;Trusted_Connectionsyes;) cursor conn.cursor() value (tuple(i) for i in data.values) sqlstr insert into {} values ({}).format(tablename, ,.join([?]*len(data.columns))) try:a cursor.executemany(sqlstr, value)conn.commit() except Exception as e:print(e)conn.rollback() finally:conn.close() 报错 还是只会报一种错误 第二种一行一行插入 import pandas as pd import pyodbcdata pd.read_excel(test.xlsx) columns_ , .join(data.columns) conn pyodbc.connect(rDriver{SQL Server};Server服务器名;Database数据库名;Trusted_Connectionsyes;) cursor conn.cursor() # 众所周知 sqlserver inser插入对于文本数据是需要单引号引用起来所以 我们直接读取出来的数据不可以直接使用会出错 默认为 insert tablename value (1, Jonny, None, 1, 2024-04-01) 所以会出错 # 转变形式 # 将data 进行变换 for _, row in data.iterrows():data_item [f\{row[column]}\ for column in list(data.columns)]sqlstr fINSERT INTO tablename ({columns_}) values ({, .join(data_item)}) # 注意上面,后面有一个空格 符合Sql插入的写法 try:cursor.execute(sqlstr) except pyodbc.Error as e:print(e) finally:conn.close() 报错状况 可以清楚的看到 将所有的错误都显示了出来 第二种使用pymssql进行链接数据库 import pymssql import pandas as pddata pd.read_excel(test.xlsx)conn create_engine(rmssqlpymssql://服务器名/数据库名) for _, row in data.iterrows():data_item [f\{row[column]}\ for column in list(data.columns)]sqlstr fINSERT INTO test ({columns_}) VALUES ({, .join(data_item)})try:cursor.execute(sqlstr)except pymssql.Error as e:print(e)报错情况 这里需要说明下 except pymssql.Error 和 pyodbc.Error不一样 以上为两种不同连接方式的不同报错状况  接下来是经过特殊处理查找具体报错在哪一行哪一列 数据库表属性查看 以pyodbc的报错作为主要展示  可以看到字符串长度过长报错是22001代码 这里需要说一下 获取数据库字段详细设置的代码 # 获取数据库表中的配置 包含列名、类型、nvarchar()或varchar()最大长度 import pyodbcconn pyodbc.connect(rDriver{SQL Server};Server服务器名;Database数据库名;Trusted_Connectionyes;) cursor conn.cursor() sqlstr select column_name, data_type, character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME 表名 try:a cursor.execute(sqlstr)col_attr a.fetchall()conn.commit() except Exception as e:print(e) finally:conn.close() 这里需要说明下 不建议使用官方的那种获取表属性方法 展示一下 这里显示的最大长度设置为100 其实表格设置的是50  会进行扩大一倍 所以为了准确判断 我们字符串是否超出此列最大设置长度不建议使用  具体报错查看 如果全部数据正确则上传 不正确则不上传并且指出具体错误到哪一行哪一列 行数是具体数据的哪一行 不是Excel的index 这里以最难的nvarchar长度举例  因为python库包装的底层代码原因 所以报错不是很清楚 查找难度会困难点 需要准备的工作 查找表属性使用python和sqlserver上传数据借用上传数据查找出错误具体内容以及具体位置 测试数据展示  Sqlserver表属性展示 # 调用要使用的python库 # 这里建议pyodbc库 原因可查看碰到的问题 import pyodbc import pandas as pd# 读取数据 data pd.read_excel(rD\test2.xlsx)# 获取数据库表属性 def get_the_sqltable_attr(tablename):conn pyodbc.connect(rDriver{SQL Server};Server服务器名;Database数据库名;Trusted_Connectionyes;)cursor conn.cursor()sqlstr fselect column_name, data_type, character_maximum_length FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME {tablename} try:a cursor.execute(sqlstr)tab_attr a.fetchall()return tab_attrconn.commit()except Exception as e:print(e)finally:conn.close()table_attr get_the_sqltable_attr(tablenametest) print(table_attr)# 取读取进来的数据进行元组化, 符合insert语句中的(column1, column2) columns_ , .join(data.columns) print(columns_)#连接数据库 准备上传 conn pyodbc.connect(rDriver{SQL Server};Server服务器名;Database数据库名;Trusted_Connectionyes;) cursor conn.cursor() # 循环行 一行一行插入数据 速度会比to_sql慢 但是可以具体反应错误 碰到的问题有详解 for _, row in data.iterrows():# 插入的值也要进行变换 后面我会输出 可让观察不处理的报错情况data_item data_item [f\{row[column]}\ for column in list(data.columns)]sqlstr f INSERT INTO 表名 ({columns_} VALUES ({, .join(data_item)}))try:cursor.execute(sqlstr)except pyodbc.Error as e:if e.args[0] 22001:s get_the_sqltable_attr(tablenametest)# 因为上面的特殊处理 所以取出来的时候也会麻烦点# 查出报错trouble [[s.index(i), i[0], i[2], i[1]] for i in s]data_new [i.split()[1] for i in data_item]for i in range(len(data_new)):if trouble[i][3] nvarchar and len(data_new[i]) trouble[i][2] or trouble[i][3] varchar and len(data_new[i]) trouble[i][2]:row int(data_item[0].split()[1])column trouble[i][1]charter data_new[i]print(f第{row}行, {column}列 字符: {charter}字符串过长) 现在说明下上述注释掉的为什么要将data的value进行特殊处理 {data_item [f\{row[column]}\ for column in list(data.columns)]} 如果不进行特殊处理 我们拿出来的值是 这样 insert table的value直接传入列表对于Sqlserver语言来说 为错 有些人可能会说直接转换为tuple()  博主亲测错误如果为元组 里面的字符串会不带 但是sqlserver是需要字符串带 时间类型的也可以像如上处理方式一样类型转换错误会简单点  有其他任何方法 欢迎和博主讨论 都湿手打的 如果错误了 感谢提出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931940.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

长春餐饮网站建设wordpress页面构造器

分类目录:《自然语言处理从入门到应用》总目录 在本文中,我们将学习如何在LangChain中创建简单的链式连接并添加组件以及运行它。链式连接允许我们将多个组件组合在一起,创建一个统一的应用程序。例如,我们可以创建一个链式连接&a…

RL | 速读 IJCAI 2025 的强化学习论文

速读一下 IJCAI 2025 的 RL 相关论文。目录359 Multi-granularity Knowledge Transfer for Continual Reinforcement Learning - 为持续 RL 而设计的多粒度知识迁移一、 研究背景与核心痛点(The Gap)二、 动机与故事…

Superhumanism

The civilizeds support Superhumanism. But they didnt support the Nazi Germany! Because they dont see the similar. Because they dont see the consequences. A normal human cannot become a superman, but if…

IDM弹窗解决 - -一叶知秋

IDM弹窗解决1、打开任务管理器,结束IDM任务(一定要结束全部的IDM任务)2、在控制面板中,打开 管理工具(有搜索)3、然后打开 本地安全策略4、找到 软件限制策略->其它规则,如果 软件限制策略 下面没有选项,就…

PHP+MySQL开发语言 在线下单订水送水小脚本源码及搭建指南

PHP+MySQL开发语言 在线下单订水送水小脚本源码及搭建指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

Sliding Window Algorithm

核心目的 滑动窗口技术的主要目的是优化算法。它能将一个通常需要用两层嵌套循环(时间复杂度为 \(O(N^2)\))才能解决的问题,转化为只需一次单循环(时间复杂度为 \(O(N)\)),从而大大提高代码的执行效率。工作原理…

微信企业号可以做微网站吗宿州建设银行网站

对数值进行调整在Python中对整数和浮点数进行数字计算是很容易的。但是,如果你需要对分数,数组或者日期和时间进行计算,这就会稍微复杂点。对于简单的取整操作,我们可以使用内建的round(value, ndigits)函数就可,举个例…

网站建设所需人员上海如何优化网站

动态通过网络获取json来tabbar图片和文字或其他信息转载于:https://www.cnblogs.com/TheYouth/p/6488843.html

合肥的网站建设剂屏购物网站开发流程

文章目录 5 智能指针与内存管理5.1 RAII与引用计数5.2 std::shared_ptr5.3 std::unique_ptr5.4 std::weak_ptr 6 正则表达式7 并行与并发7.1 并行基础7.2 互斥量与临界区7.3 期物7.4 条件变量7.5 原子操作与内存模型 5 智能指针与内存管理 5.1 RAII与引用计数 在传统 C 中&am…

广西柳州网站建设公司网站建设的实验总结

文章目录 生成数据帧参考 生成数据帧 代码如下,代码很简单,有几点要注意, 较高版本的MATLAB中支持0x的写法使用bitand进行位运算使用strcat函数进行字符串拼接时,如果需要插入空格,要使用双引号 cmd_ay(1) 0x33; …

图片 展示 网站模板快速seo整站优化排行

本博客参考官方文档进行介绍,全网仅此一家进行中文翻译,走过路过不要错过。 官方网址:https://www.mpi-forum.org/ 参考文档:https://www.mpi-forum.org/docs/mpi-4.1/mpi41-report.pdf 引用官方4.1文档方法: manu…

国庆模拟赛总结

2025/10/2 T1 这道题我一眼出思路呀,直接建反边然后判断一下可达性不就秒了吗,10分钟直接秒,不过有点坑,第一个点如果没出边那它就应该标记合法,这不标直接100pts->90pts,以后还是要多注意细节。还有一点很重…

深入解析:video-audio-extractor:视频转换为音频

深入解析:video-audio-extractor:视频转换为音频pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

10.8 CSP-JS 模拟赛 T4. discover

思路 不难想到用数量较少的危险点来限制长方形, 进而处理正方形 现在的问题就是如何精确地刻画任意一个本质相同的长方形, 发现我们完全可以通过枚举四个危险点来刻画一个长方形 但是这样会出现大量的不合法情况\((\)即…

20251008 模拟测 总结

\(\mathcal{Preface}\) 分数 \(50+100+40+100=290\),甚至比去年低 \(15\) 分,有点受不了了。 A 题代码上挂了 \(50\) 分,C 题思维上挂了 \(60\) 分。 简称:挂了 \(50\) 分,还“挂了”\(60\) 分。 挂的最猛烈的一次…

初中学习网站大全免费哈尔滨市城乡和建设局网站

在完成了对Exchange的UM功能进行配置之后,我们要把UM的功能与Lync做集成的话还需要在Lync这边做一些配置。首先我们打开Lync前端服务器,然后打开核心组件安装目录下的Support文件夹,然后双击OcsUmUtil。打开之后我们单击加载数据,…

详细介绍:运行shell脚本时报错/bin/bash^M: 解释器错误: 没有那个文件或目录

详细介绍:运行shell脚本时报错/bin/bash^M: 解释器错误: 没有那个文件或目录pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fam…

VuePress v2是否支持Vue2的配置?

不,VuePress v2 不支持 Vue 2 的配置和运行时。它是一个基于 Vue 3 的全新版本,与 Vue 2 完全不兼容。 以下是详细解释:❌ VuePress v1 vs v2:核心差异特性 VuePress v1 VuePress v2Vue 版本 Vue 2 ✅ Vue 3打包工…

福建省建设局网站实名制建网站的费用包括

.gitignore的使用 1、简介 .gitignore文件用于指定哪些文件或目录应该被Git忽略,即它们不会被Git跟踪和提交到版本控制中。 2、简单语法规则 1、注释:使用#符号进行注释。 2、文件和目录规则:每行一个规则,指定要忽略的文件、…