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)
你好,我是AI助理
可以解答问题、推荐解决方案等
评论
全部评论 (0)