for循环可以用于范围n,n-1

时间:2018-03-29 14:15:51

标签: python-3.x mysql-python

我是python的新手,所以我需要你的帮助才能弄清楚如何做到这一点。

我正在尝试将数据从excel文件导入到MySQL数据库中,我需要导入除此之外的所有内容,包括石楠和最后一行。

目前,这是代码:

recursive (100, new StringBuilder (101));

我知道可能是在代码的这一部分我需要做些什么,但我尝试了一切我能想到的,没有任何效果。 有什么想法吗?

重要的是说我正在使用xlrd和MySQLdb,所以我需要能够使用这些模块的东西。

提前致谢

2 个答案:

答案 0 :(得分:0)

使用Pandas

pd.read_excel(<parameter>)
pd.to_sql(<parameters>)

以下是Pandas和SQL Alchemy的快速示例:

import pandas as pd
from sqlalchemy import create_engine
engine = create_engine(<<MYSQL COnnection String>>)
df = pd.read_excel("") #https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_excel.html
df.to_sql(con=engine, name='tablename',if_exists='append', index=False) 

您需要安装Pandas和SQLAlchemy Module。你可以轻松地谷歌那些,

答案 1 :(得分:0)

在我自己的一个电子表格上运行了一些测试后,看起来很混淆nrows的含义以及它与范围索引的关系。

标题行是第0行。

通过将范围设为1,可以正确排除标题(如果标题只有1行!)。

nrows是行数。这意味着如果你有362行,nrows将是362.但是......如果你将它传递给范围,因为range从0开始,你将得到&#34;碰撞&#34;到第363排。您代码中的nrows -1会将其调整回工作表的最后一行。

因此,要按照您描述的方式清理数据,您需要做的就是排除标题,最后一行是从第1行开始到nrows -2结束。

for r in range(1, sheet.nrows - 2):