首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我运行python代码将数据保存在sqlite中时,出现"SyntaxError: EOL when scanning string literal“

当我运行python代码将数据保存在sqlite中时,出现"SyntaxError: EOL when scanning string literal“
EN

Stack Overflow用户
提问于 2016-07-17 23:45:56
回答 1查看 1.4K关注 0票数 0

我想在sqlite数据库中保存数据,数据是@function和大小,块大小和转储(从@f中提取和读取@size字节并返回数据)这些数据是通过分析二进制文件获得的。Screenshot shwing the data

代码语言:javascript
复制
 try:
                con = lite.connect('younes.db')
                c = con.cursor()
                c.execute(" CREATE TABLE IF NOT EXISTS  disas(NAMEvarchar(20),STADDR INTEGER,BLOCK INTEGER, DUMP BLOB )")

                c.execute("INSERT INTO disas VALUES ('"+f.name+"', "+str(f.addr)+", "+str(b.size)+",'"+dump+"')

    except lite.Error, e:
            if con:
                con.rollback()
                print "Error %s:" % e.args[0]
                sys.exit(1)
    finally:
             if con:
                c.close()
                con.close()


  File "testy.py", line 58
        c.execute("INSERT INTO disas VALUES ('"+f.name+"', "+str(f.addr)+", "+str(b.size)+",'"+dump+"')^
     SyntaxError: EOL while scanning string literal
EN

回答 1

Stack Overflow用户

发布于 2016-07-18 00:00:18

字符串中缺少一个结束的"和一个结束的)

应该是这样的:

代码语言:javascript
复制
c.execute("INSERT INTO disas VALUES ('" + f.name + "', " + str(f.addr) + ", " + str(b.size) + ",'" + dump + "')")

如果你这样做,你会更容易阅读你的字符串:

代码语言:javascript
复制
sql = "INSERT INTO disas VALUES ('{name}', '{addr}', '{size}', '{dump}')".format(
    name=f.name,
    addr=f.addr,
    size=b.size,
    dump=dump
)
c.execute(sql)

这更容易阅读,也更容易发现哪里出了问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38423019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档