2015-01-31 223 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没有发生任何异常。