Py学习  »  Python

如何在python中存储sql表来使用它?

zhivab • 4 年前 • 834 次点击  

我希望在python中使用sql中的表。我想将整个表存储在一个名为“mat”的矩阵中,然后在python代码之后获得输出,这样我就可以用sql再次读取该表。我就是这样开始的:

import pyodbc
import pandas as pd
server = 'myserver'
database = 'mydatabase'
username = 'myuser'
password = 'mypassword'
cnxn = pyodbc.connect('DRIVER={ODBC Driver 13 for SQL Server};SERVER='+server+';DATABASE='+database+';UID='+username+';PWD='+ password) 

******Python code*******

mat=pd.read_sql('select * from mytable order by time' , con = cnxn)

如何读取表以将其存储在mat中,然后如何将其发送回sql?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46394
 
834 次点击  
文章 [ 2 ]  |  最新文章 4 年前
ryguy72
Reply   •   1 楼
ryguy72    5 年前

我就是这样做的。

import mysql.connector
import pandas as pd
import numpy as np
# use this to display ALL columns...useful, but definitely not required
pd.set_option('display.max_columns', None)


mydb = mysql.connector.connect(
  host="localhost",
  user="duser_name",
  passwd="pswd",
  database="db_naem"
)

mycursor = mydb.cursor()

mycursor.execute("SELECT * FROM YourTable")

myresult = mycursor.fetchall()

df = pd.DataFrame(myresult)

df.to_csv('C:\\path_here\\test.csv', sep=',')

您可以轻松地将数据帧转换为矩阵。

np.array(df.to_records().view(type=np.matrix))

但我不知道你为什么要这么做。我认为datframes对于大多数人来说更实用。

Samuel Nde
Reply   •   2 楼
Samuel Nde    5 年前

您已经将数据读入 DataFrame . 如果要将数据帧转换为矩阵,请执行 mat.values . 如果要将数据写入SQL表,则必须创建 cursor 然后用它来插入数据。

cursor = cnxn.cursor()
cursor.execute(''' INSERT INTO myTable (FirstName, LastName) VALUES ('Wilsamson', 'Shiphrah') ''')

如果有多个值,则应使用 executemany 指挥部;

values = list(zip(mat['FirstName'].values.tolist(), mat['LastName'].values.tolist()))
cursor.executemany('''INSERT INTO myTable (FirstName, LastName) VALUES (?, ?)''', values);

结束时 INSERT 声明,你需要 commit 在关闭之前插入 光标 connection 是的。

cursor.commit()
cursor.close()
cnxn.close()

如果你想转换