作为配置单元查询传递的Python变量

2024-03-28 18:10:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个python脚本,它将请求用户输入。这个输入将存储在两个独立的变量中,然后这些变量将用于查询配置单元的信息。代码如下:

person_database = []
full_name = raw_input('Enter Your Full Name: ')
residence_city = raw_input('Enter City of Interest: ')
def check():    #Define function
`    cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE` person_name=="full_name" AND city=="recidence_city";'"
     person_database = commands.getoutput(cmd)
     print person_database

现在的问题是,如何将变量传递给配置单元中的“cmd”,以便使用它们包含的内容,而不是变量名?例如,如果“全名”包含“John Smith”,而“residence_city”包含“Vancouver”,则“John Smith”和“Vancouver”应构成查询的一部分。在


Tags: name脚本cmdcityinputrawjohndatabase
3条回答

根据潘德的回答找到了更好的解决方案:

cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE person_name==\"%s\" AND city==\"%s\";'"%(full_name,residence_city)
     person_database = commands.getoutput(cmd)
     print person_database

“before each”做到了这一点,现在用户可以输入数据而不必担心引用。在

谢谢你们的帮助!!!在

可以通过在变量前后添加+来实现。通过这种方式,可以将它们视为字符串,+只是将它们串联起来。cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE person_name=="+ full_name + " AND city==" + residence_city +";'"

您只需将cmd视为字符串并构建所需的文本:

.......
cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE`    person_name=="%s" AND city=="%s";'"%(full_name,residence_city)
         person_database = commands.getoutput(cmd)
         print person_database

相关问题 更多 >