Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python错误。我不知道';我不明白我的意思;我做错了_Python_Json_Terminal_Httplib - Fatal编程技术网

Python错误。我不知道';我不明白我的意思;我做错了

Python错误。我不知道';我不明白我的意思;我做错了,python,json,terminal,httplib,Python,Json,Terminal,Httplib,我太迷茫了,我做错了什么。。。我已经在网上搜索了几个小时,试图重新格式化我的代码,但现在我感觉被卡住了 这是我的代码: import httplib import json urlBase = 'amoeba.im' token = False username = raw_input('Username? ') connection = httplib.HTTPConnection(urlBase) def get(url): connection.request("GET",

我太迷茫了,我做错了什么。。。我已经在网上搜索了几个小时,试图重新格式化我的代码,但现在我感觉被卡住了

这是我的代码:

import httplib
import json

urlBase = 'amoeba.im'
token = False
username = raw_input('Username? ')

connection = httplib.HTTPConnection(urlBase)

def get(url):
    connection.request("GET", url)
    response = connection.getresponse()
    print response.status, response.reason
    print response.read();
    if token == False:
        token = response.read()
        token = token.split('"token":"')[1]
        token = token.split('","')[0]
        print token

get('/api/login?username=' + username)

get('/api/rooms/join?room=#lobby&token=' + token)

get('/api/postmessage?message=hello%20world&token=' + token)

connection.close()
以下是终端输出:

Tyler-Keohanes-MacBook-Pro:~ tylerkeohane$ clear && '/usr/bin/pythonw' '/Users/tylerkeohane/Desktop/chatbot.py'
Username? TgwizBot
200 OK
{"success":true,"username":"TgwizBot","token":"103f6a2809eafb6","users":[{"username":"razerwolf","seen":1338582178260},{"username":"tonynoname","seen":1338582178028},{"username":"arrum","seen":1338582177804},{"username":"Valerio","seen":1338582177504},{"username":"Tgwizman","seen":1338582177258},{"username":"tonynoname2","seen":1338582178004},{"username":"TgwizBot","seen":1338582182219}],"time":1338582182219}
Traceback (most recent call last):
  File "/Users/tylerkeohane/Desktop/chatbot.py", line 21, in <module>
    get('/api/login?username=' + username)
  File "/Users/tylerkeohane/Desktop/chatbot.py", line 15, in get
    if token == False:
UnboundLocalError: local variable 'token' referenced before assignment
Tyler-Keohanes-MacBook-Pro:~ tylerkeohane$ 
Tyler Keohanes MacBook Pro:~tylerkeohane$clear&&'/usr/bin/pythonw'/Users/tylerkeohane/Desktop/chatbot.py'
用户名?TgwizBot
200行
{“success”:true,“username”:“TgwizBot”,“token”:“103f6a2809eafb6”,“users”:[{“username”:“razerwolf”,“seen”:1338582187260},{“username”:“tonynoname”,“seen”:133858217028},{“username”:“Valerio”,“seen”:13385882177504},{“username”:“tg85wizman”,“seen”:133821772258},{“username”:“tonynoname2”,“seen”:13385851782004}{“用户名”:“TgwizBot”,“seen”:133858218219}],“时间”:133858218219}
回溯(最近一次呼叫最后一次):
文件“/Users/tylerkeohane/Desktop/chatbot.py”,第21行,在
获取('/api/login?username='+username)
get中第15行的文件“/Users/tylerkeohane/Desktop/chatbot.py”
如果令牌==False:
UnboundLocalError:分配前引用的局部变量“token”
Tyler Keohanes MacBook Pro:~tylerkeohane$
有人能帮忙吗?:(

线索在这里:

UnboundLocalError: local variable 'token' referenced before assignment
您需要将
令牌
声明为全局令牌:

def get(url):
    global token
    ...

你也可以考虑避免全局变量,因为它们通常被认为是一个坏的实践。

< P>这里的线索是:

UnboundLocalError: local variable 'token' referenced before assignment
您需要将
令牌
声明为全局令牌:

def get(url):
    global token
    ...

你也可以考虑避免全局变量,因为它们通常被认为是一个坏的实践。

在函数中赋值为<代码>令牌< /代码>,因此它被认为是该函数的局部变量。正如错误消息所示,在有任何东西之前,你已经尝试过使用它。

您在函数外部声明的
标记被局部变量“隐藏”,因此无法访问

要使其在函数中可分配,请将
global token
放在
def
行之后

但是全局变量通常是一个糟糕设计的标志。相反,您可能应该将
标记
作为参数传递到函数中


如果您只使用该模块,您会发现生活会轻松得多。

您在函数中指定了
标记
,因此它被视为该函数的局部变量。正如错误消息所示,您在函数中出现任何内容之前就尝试过使用它

您在函数外部声明的
标记被局部变量“隐藏”,因此无法访问

要使其在函数中可分配,请将
global token
放在
def
行之后

但是全局变量通常是一个糟糕设计的标志。相反,您可能应该将
标记
作为参数传递到函数中

如果您只使用该模块,您会发现生活会轻松得多。

如果您搜索“unboundlocalerror”,我将添加可能的重复是第一个结果。如果您搜索“unboundlocalerror”,我将添加可能的重复是第一个结果。