InterfaceError:(sqlte3.InterfaceError)Error binding parameter 0? 400 报错
最近在学习scrapy爬虫,爬取别人博客上的文章标题。如果不加数据库,能够很好的输出结果,虽然排版不好看,但是使用sqlalchemy存储数据,一直出错,错误提示所图片所示:
我的item['title']是通过以下的解析式来的:
item['title'] = sel.xpath('//*[@class="link_title"]/a/text()').extract()
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
DeclarativeBase = declarative_base()
def db_connect():
return create_engine('sqlite:///./sqlalchemy.db',echo = True)
def create_myblog_table(engine):
DeclarativeBase.metadata.create_all(engine)
class MyBlog(DeclarativeBase):
__tablename__ = 'myblog'
id = Column(Integer, primary_key = True)
title = Column('title', String(200))
from sqlalchemy.orm import sessionmaker
from model import MyBlog, db_connect, create_myblog_table
class MyblogPipeline(object):
def __init__(self):
engine = db_connect()
create_myblog_table(engine)
self.Session = sessionmaker(bind = engine)
def process_item(self, item, spider):
session = self.Session()
myblog=MyBlog(**item)
session.add(myblog)
session.commit()
return item
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
可能是你获得字符串含有非法字符的缘故。。
#-*- encoding: utf-8 -*-
'''
如果是你说的字符串,则没有任何问题
'''
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
from sqlalchemy import Column, Integer, String
class MyBlog(Base):
__tablename__ = 'myblog'
id = Column(Integer, primary_key = True)
title = Column('title', String(200))
Base.metadata.create_all(engine)
title = u'\r\n Accelerated c++\u5b66\u4e60 chapter3 ----- \u7528\u6279\u636e \r\n '
one_blog = MyBlog ( title = title )
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
Session.configure(bind=engine)
db_session = Session()
db_session.add(one_blog)
a = db_session.query(MyBlog).first()
print (a.title)
可能是你获得字符串含有非法字符的缘故。。
#-*- encoding: utf-8 -*-
'''
如果是你说的字符串,则没有任何问题
'''
from sqlalchemy import create_engine
engine = create_engine('sqlite:///:memory:', echo=True)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
from sqlalchemy import Column, Integer, String
class MyBlog(Base):
__tablename__ = 'myblog'
id = Column(Integer, primary_key = True)
title = Column('title', String(200))
Base.metadata.create_all(engine)
title = u'\r\n Accelerated c++\u5b66\u4e60 chapter3 ----- \u7528\u6279\u636e \r\n '
one_blog = MyBlog ( title = title )
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
Session.configure(bind=engine)
db_session = Session()
db_session.add(one_blog)
a = db_session.query(MyBlog).first()
print (a.title)
,这样才把把列表中的元素传为数据库,