首页 » Python » pandas读取sql数据转换格式失败解决方案unsupported format character 'Y'

pandas读取sql数据转换格式失败解决方案unsupported format character 'Y'

 

直接把常用sql写过来,发现报错:

1
unsupported format character 'Y' (0x59)

查阅资料后发现,原来在pandas使用sql,里面涉及到%参数的一定要写两遍% 最后改成如下即可执行了。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import pymysql
import sqlalchemy
from sqlalchemy import create_engine
import pandas as pd
import warnings
import numpy as np
print(pymysql.version_info)
print(sqlalchemy.__version__)
warnings.filterwarnings("ignore")
pd.set_option('display.max_rows', None)      # 显示完整的行
# 建立数据库连接
# 创建连接参数
db_info = {
    'user':'',
    'password':'',
    'host':'.',
    'database':''
}

# 连接数据库的方法create_engine,这里就用了字典的格式化输出的方式
conn = create_engine('mysql+pymysql://%(user)s:%(password)s@%(host)s/%(database)s?charset=gbk' % db_info,encoding='utf-8')


# 写sql获取需要的数据
sql_cg = '''
select 商机id,估价最大值,str_to_date(创建时间,'%%Y-%%m-%%d'),是否为真 from shangjidan
where str_to_date(创建时间,'%%Y-%%m-%%d') between str_to_date("2020-09-01",'%%Y-%%m-%%d') and str_to_date("2020-09-30",'%%Y-%%m-%%d')
limit 1000
'''
data1 = pd.read_sql(sql_cg,conn)
print(data1)

原文链接:pandas读取sql数据转换格式失败解决方案unsupported format character 'Y',转载请注明来源!

0