为什么不能相加呢?
msg=MIMEText(df.ix].values.encode('utf-8')+\'价格低于'+str(price)+',现价:'+ \
df.ix].values.encode('utf-8'),\
'plain','utf-8')
TypeError: can't concat str to bytes
为什么不上全代码呢? ba21 发表于 2019-1-27 17:12
为什么不上全代码呢?
import tushare as ts
from email.header import Header
from email.mime.text import MIMEText
from email.utils import parseaddr,formataddr
import smtplib
from_addr='****@163.com'
passwd='******'
to_addr='*****@qq.com'
smtp_server='smtp.163.com'
def _format_addr(s):
name,addr=parseaddr(s)
return formataddr((Header(name,'utf-8').encode(),\
addr.encode('utf-8') if isinstance(addr,str)else addr))
def remind(code,price):
while True:
df=ts.get_realtime_quotes(code)
if float(df.ix].values.encode('utf-8'))<price:
msg=MIMEText(df.ix].values.encode('utf-8')+\
'价格低于'+str(price)+',现价:'+ \
df.ix].values.encode('utf-8'),\
'plain','utf-8')
msg['From']=_format_addr(u'慧用科技<%s>'% from_addr)
msg['To']=_format_addr(u'接收员<%s>'%to_addr)
msg['Subject']=Header(u'来自慧用科技的SMTP问候……','utf-8').enco
server=smtplib.SMTP(smtp_server,25)
server.set_debuglevel(1)
server.login(from_addr,passwd)
server.sendmail(from_addr,,msg.as_string())
server.quit()
break
remind('601881',12.58) ba21 发表于 2019-1-27 17:12
为什么不上全代码呢?
全代码发上了 错误提醒是,str不能和byte相加
你代码里用了encode的都是bytes,整个结构是 bytes+str+bytes所以报错
页:
[1]