2017-03-23 61 views
-1

我要送一對數字的POST請求,看起來像這樣的部分內:/updateDB?id=001&numbers=1,2,3,4,5,6如何對對象在Python和推動他們在陣列另一個數組

在服務器端在Python,我我得到這些參數使用:

objectID = request.args.get('id') 
myNumbers = request.args.get('numbers') 

我想配對這些數字,並將它們放入他們各自的數組,然後將這些數組放在另一個數組。

例如,我想配對1和2,3和4,5和6,並將它們放入它們自己的數組(總共3個數組)。一旦完成,我想將這3個數組放入另一個數組中。

[ 
    [1,2] 
    [3,4] 
    [5,6] 
] 

我試着寫一個for循環要經過myNumbers

for x in myNumbers: 
    print myNumbers(x) 

但我得到的錯誤unicode object is not callable。我猜這是因爲這些數字之間有逗號?

+0

我認爲您的意思是'GE T'請求那裏。無論如何,這個錯誤是因爲你試圖遍歷一個'string' unicode對象。你可以像'request.args.get('numbers')一樣拆分'args'。split(',')' –

+0

@ kiran.koduru謝謝,我正在研究它。 – mapr

+0

@ kiran.koduru無關,但在發送數據到數據庫時不應該使用POST? – mapr

回答

1
[list(pair) for pair in zip(myNumbers[::2], myNumbers[1::2])] 

將導致結構你正在尋找

+0

這是一個很好的方法,但它將數字轉換爲字符串?可能是因爲這些號碼是作爲字符串發送的。 – mapr

+0

@maprYour myNumbers很可能是一個字符串。檢查'type(myNumbers)'。如果它的字符串如「1,2,3,4,5,6」,則必須用'myNumbers.split(',')分割它,否則會生成一個字符串數組,例如[「1」,「2 」, 「3」, 「4」, 「5」, 「6」]。爲了得到一個int數組,你必須將它們映射到一個int,例如'map(int,myNumbers.split(','))',然後使用這個答案中的方法 – Anoop

+0

它們以unicode的形式發送,最終添加在這個數字前面還有一個'u',就像這樣:[u'1',u'2'],[u'3',u'4'],[u'5',u'6' ]]。我會嘗試你建議的方法。 – mapr

0

這裏是用於Python 3樣品:

def pair_list(original_list): 
    new_big_list=[] 
    for i in range(0,len(original_list)-1, 2): 
     new_big_list.append([original_list[i],original_list[i+1]]) 
    return new_big_list 

if __name__ == '__main__': 
    test_list=[1,2,3,4,5,6] 
    print(pair_list(test_list)) 

輸出將是: [[1,2],[3, 4],[5,6]]

如果您在Python 2.7中將範圍更改爲xrange

+0

因爲數字是作爲字符串發送的,所以一旦輸出完成,我怎麼才能確保它們是int()或float()? – mapr

+0

我相信它適用於字符串,整型和浮點型。數據類型無關緊要。 – Windchill

相關問題