Python-MySQL:如何在python脚本中创建select(where子句)查询?

时间:2018-09-17 10:24:53

标签: python mysql

这是一个MySQL查询,我想在python脚本中使用它:

 cmd = "mysql -Nr -uuser -ppwd   -hlocalhost -P3307 mybase -e 'select value from table where Id='5' and product='product'" | tr -d ' ' | tr -d ',' | sed 's/>https:/>\r\nhttps:/g' | sed 's/=</=\n</g' | grep "https:" | sed 's;www.mysite.org/page/;;g'  > /tmp/myfile.tmp"

更新后,它看起来像这样:

  cmd = "mysql -Nr -uuser -ppwd  -hlocalhost -P3307 mybase -e \' select value from table where Id="5" and product="product" \' | tr -d \' \' | tr -d \',\' | sed \'s/>https:/>\r\nhttps:/g\' | sed \'s/=</=\n</g\' | grep "https:" | sed \'s;www.mysite.org/page/;;g \'  > /tmp/myfile.tmp"

执行后的结果:

  

SyntaxError:语法无效

     

[root @ admin tmp] $ vi select_python.py

     

[root @ admin tmp] $ python select_python.py

我的python脚本中的MySQL查询语法有什么问题?

1 个答案:

答案 0 :(得分:0)

您可以在python中使用os包来调用mysql查询并处理linux管道格式 一个简单的方法如下所示:

import os
os.system("mysql -Nr -uuser -ppwd   -hlocalhost -P3307 mybase -e 'select value from table where Id='5' and product='product'\"  | tr -d ' ' | sed 's/>https:/>\r\nhttps:/g' | sed 's/=</=\n</g' | grep \"https:\" | sed 's;www.mysite.org/page/;;g'  > /tmp/myfile.tmp")

确保不要使用双引号