Python,字符串格式化,奇怪的输出

Gio*_*ner 1 python string formatting

我有这个字符串

q="""insert into genres (movieid,%(genre_name)s) values (%(movieid)i,1)""" % {'genre_name': t2, 'movieid': movieid}
Run Code Online (Sandbox Code Playgroud)

但结果print q

)values(1,1)nres(movieid,adventure

代替

插入流派(movieid,adventure)值(1,1)

为什么?

sou*_*eck 6

你的电影genre_name有回车.

例:

q="""insert into genres (movieid,%(genre_name)s) values (%(movieid)i,1)""" % {'genre_name': 'horro\r', 'movieid': 12}

print q
Run Code Online (Sandbox Code Playgroud)

得到:

) values (12,1)res (movieid,horro

你应该清理你的输入.在那里有一个反斜杠很奇怪,但也许可以将它改为斜线或制作它adventure(r).