使用python变量使用sqlalchemy从访问表中读取特定行
我有一个名为“ cell_list”的访问表,其中一个称为“ cell_#”的键列。我想将表读取到数据框中,但只有匹配python列表“ cell_numbers”中指定的索引的行。 我尝试了几种变体:
import pyodbc
import pandas as pd
cell_numbers = [1,3,7]
cnn_str = r'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\folder\myfile.accdb;'
conn = pyodbc.connect(cnn_str)
query = ('SELECT * FROM Cell_list WHERE Cell_# in '+tuple(cell_numbers))
df = pd.read_sql(query, conn)
但是无论我尝试什么,我都会得到语法错误。 我该怎么做?
I have an access table called "Cell_list" with a key column called "Cell_#". I want to read the table into a dataframe, but only the rows that match indices which are specified in a python list "cell_numbers".
I tried several variations on:
import pyodbc
import pandas as pd
cell_numbers = [1,3,7]
cnn_str = r'Driver={Microsoft Access Driver (*.mdb,*.accdb)};DBQ=C:\folder\myfile.accdb;'
conn = pyodbc.connect(cnn_str)
query = ('SELECT * FROM Cell_list WHERE Cell_# in '+tuple(cell_numbers))
df = pd.read_sql(query, conn)
But no matter what I try I get a syntax error.
How do I do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
考虑在
Consider best practice of parameterization which is supported in
pandas.read_sql
:Consider even dynamic qmark placeholders dependent on length of
cell_numbers
:转换(JOIN)
cell_numbers
转换为文本:并加入此。
完成的SQL应该读取(您可能需要围绕怪异字段名称
单元格_#
):Convert (join)
cell_numbers
to text:and concatenate this.
The finished SQL should read (you may need brackets around the weird field name
Cell_#
):