这是一个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查询语法有什么问题?
答案 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")
确保不要使用双引号