如果使用长查询,pymysql将返回错误

时间:2016-06-03 01:29:53

标签: python mysql pymysql

如果我使用长查询,则使用以下代码,然后出现错误。我给出的查询大小是否有限制?

抱歉,但我无法分享我正在传递的确切查询。如果在MySQL工作台中给出相同的查询,则正确返回数据。任何建议将不胜感激。

我的代码:

import pymysql.cursors
import pymysql
import pandas as pd


connection = pymysql.connect(host = host,
                       user = user,
                       db = db,
                       password = password,
                        port = port)

def sql_to_df(sql_query):
    df = pd.read_sql(sql_query, connection)
    connection.close()
    return df

query = '''long query'''

#use pandas to pass SQL query
df = sql_to_df(query)    
df.head()

返回此错误:

    497             sql, index_col=index_col, params=params,
    498             coerce_float=coerce_float, parse_dates=parse_dates,
--> 499             chunksize=chunksize)
    500 
    501     try:

   1602         if chunksize is not None:

TypeError: 'NoneType' object is not iterable

2 个答案:

答案 0 :(得分:1)

def sql_to_df(sql_query):
     df = pd.read_sql(sql_query, connection)
     connection.close()
     return df

query = '''long query'''

#use pandas to pass SQL query
df = sql_to_df(query)    
df.head()

你只需要在下面..

df = pd.read_sql(query, connection) 
connection.close()
df.head()

答案 1 :(得分:0)

使用不同的工具查询数据库(mysql.connector)。我能够找到对错误的更多见解。

DatabaseError: Execution failed on sql 'SET SESSION group_concat_max_len = 1000000;

从我的查询中删除后,它有效。