2015-01-31 220 views
0

所以,當我運行此:如何解決INT()lireral基數爲10的錯誤web.py蟒蛇

class query: 

    def GET(self, query, page = 1): 
     size = 40 
     results = es.search(index=conf.es_video_index, body={"size":int(size), 
        "from":int(size)*(int(page)), 
        "query":{ 
         "match": { 
          "title": query, 
          } 
         } 
        }) 

我有這樣的錯誤:

invalid literal for int() with base 10: 

有人能向我解釋,爲什麼?

+1

我不能完全發現它,因爲你的例子有點含糊。 但我認爲你的'頁面'不是一個有效的int。嘗試打印它進行調試。一個有效的int文字是一個十進制數,所以既不是一個浮點也不是一個字符串也沒有None – Salo 2015-01-31 21:12:06

+0

問題是,通過'page'參數不是一個有效的整數字符串 – 2015-01-31 21:13:47

+0

請發佈調用GET()' – 2015-01-31 21:14:24

回答

2

現在也許你的問題更多關於爲什麼page不是整數。我只能猜測你的URL處理鉤是這樣的:

"/(\w*)/(.*)", "query" 

在這種情況下queryGET方法需要兩個參數:第一個將是你query參數和第二page參數。

這只是一個長鏡頭,但如果您沒有提供有關您的url處理和引發異常的頁面url的任何信息,我們可以猜測問題出在哪裏。


如果真正的問題是

Could someone explain me why?

答案是因爲page是不是一個有效的整數文本字符串。這意味着它不是int或者不是可以轉換爲int的字符串。遵循的究竟是不是一個文字字符串的一些例子:

  • 'abc'
  • '1.2'
  • None
  • 每個對象o其中str(o)不是有效的面值整數

我把帳戶只是page,因爲size已經是一個整數並且int(size) ca沒有發生任何異常。