Я всегда получаю тип ошибки, когда я запускаю следующий код питона (abc.py) следующим образом:ошибка типа в программе питона
./abc.py activatelink alphabeta
Type Error: ['alphabeta']
Мой код:
#!/usr/bin/python
import urllib2
from urllib2 import URLError
from urllib2 import HTTPError
import requests
import urllib
import json
import time
import os
import sys
import hashlib
def activate_user(link):
print invoke_rest('GET', link)
def invoke_rest(request_type, rest_url, payload, headers):
try:
api_url = rest_url
if request_type == 'GET':
r = requests.get(api_url)
to_ret = {'code':r.status_code, 'reply':r.text}
return to_ret
elif request_type == 'POST':
r = requests.post(api_url, data=payload, headers=headers)
to_ret = {'code':r.status_code, 'reply':r.text}
return to_ret
else:
return "Invalid request type ", request_type
except Exception, e:
return "Exception:", e, " in getting the API call"
def help():
print ('Usage: %s { activate | help }', os.path.basename(sys.argv[0])
if __name__ == '__main__':
actions = {'activatelink': activate_user, 'help': help}
try:
action = str(sys.argv[1])
except IndexError:
print "IndexError: ", sys.argv[1]
action = 'help'
args = sys.argv[2:]
try:
actions[action](*args)
except (KeyError):
print "Key Error:", args
help()
except (TypeError):
print "Type Error:", args
help()
я делаю что-нибудь неправильно? Я добавил некоторые другие функции, кроме activatelink, которые отлично работают, может ли кто-нибудь указать, что здесь не так?
Обеспечить полную трассировку стека исключений, пожалуйста. –
Можете ли вы * удалить * обработчики исключений в своем коде, чтобы мы могли видеть полное полное исключение с трассировкой, а не сообщение 'print'? –