2016-04-14 21 views
1

Kullanıcının giriş yapmasını isteyen bir python komut dosyası oluşturmaya çalışıyorum. Bu giriş iki ayrı değişkende saklanacak ve bu değişkenler daha sonra bilgi için kovanı sorgulamak için kullanılacaktır. Aşağıdaki kodu:Python değişkeni kovan sorgu olarak iletildi

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 

Şimdi soru, bu nasıl Hive için de "cmd" değişkenler geçmek olduğunu onlar değil, değişken adını içeren neyi kullanmayı anlayabilir? Örneğin, "full_name" "John Smith" ve "residence_city" içeriyorsa "Vancouver" içeriyorsa "john Smith" ve "Vancouver" sorgunun bir parçasını oluşturmalıdır.

cevap

1

sadece bir dize olarak cmd tedavi ve istediğiniz metni oluşturmak:

....... 
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 
+0

Harika! İşe yaradı. Sadece "s" yi silmek zorunda kaldı. "ve" ismini ve şehrini girin. Yardım için çok teşekkür ederim! – Version4

0

Daha önce ve değişkenleri sonra + ekleyerek yapabilirsiniz. Bu şekilde onları dizeler olarak değerlendirirsiniz ve + sadece onları birleştirir. .

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 

\ \ her bir "hile yapmadan önce, şimdi kullanıcı alıntılar dert etmeden girdi verileri

teşekkür ederiz olabilir adamlar: cmd = "hive -S -e 'SELECT * FROM project.full_score WHERE person_name=="+ full_name + " AND city==" + residence_city +";'"

0

PANDER en Yanıta göre daha iyi bir çözüm bulundu Yardımınız için !!!

İlgili konular