Python-显示/获取jason请求

Python-显示/获取jason请求,python,json,Python,Json,为什么这不起作用 一切都很好,但当我把它放在一些函数中时,它就不起作用了 import requests url = 'http://httpbin.org/post' payload = {'key1': 'value1', 'key2': 'value2'} def getjasonrequest(): print(url) print(payload) def runjasonrequest(): r = requests.post(url, data=pa

为什么这不起作用

一切都很好,但当我把它放在一些函数中时,它就不起作用了

import requests

url = 'http://httpbin.org/post'
payload = {'key1': 'value1', 'key2': 'value2'}

def getjasonrequest():
    print(url)
    print(payload)


def runjasonrequest():
    r = requests.post(url, data=payload)
    statReason=(r.status_code, r.reason)
    result=(r.text)

def showrequestresult():
    print(statReason+"/n"+result)



getjasonrequest()
runjasonrequest()
showrequestresult()
我得到这个错误

   print(statReason)
NameError: name 'statReason' is not definedError: name 'statReason' is not defined
这很奇怪,为什么没有定义


感谢

statReason
是一个局部变量,其中范围仅绑定到方法。将其设为全局变量或从函数返回变量。下面返回方法中的值


import requests


url = 'http://httpbin.org/post'
payload = {'key1': 'value1', 'key2': 'value2'}

def getjasonrequest():
    print(url)
    print(payload)


def runjasonrequest():
    r = requests.post(url, data=payload)
    statReason=(r.status_code, r.reason)
    result=(r.text)
    return statReason, result

def showrequestresult(statReason, result):
    print(statReason)
    print(result)



getjasonrequest()
statReason, result = runjasonrequest()
showrequestresult(statReason, result)

您可以使用相同的方法打印它,而不是返回
statReason

每个函数都会使用变量获取自己的名称空间,只要您不从主名称空间传递任何变量,它就会尝试在自己的名称空间中查找,因此会出现错误。您可以在这里找到更多信息

这将满足我的需要,谢谢

import requests

url = 'http://httpbin.org/post'
payload = {'key1': 'value1', 'key2': 'value2'}
def getjasonrequest():
    print(url)
    print(payload)


def runjasonrequest():
    r = requests.post(url, data=payload)
    statReason=(r.status_code, r.reason)
    result=(r.text)
    print(statReason)
    print(result)



getjasonrequest()
runjasonrequest()

statReason超出范围,因此您无法在函数外部访问它,请在函数外部定义一个var并通过参数传递它
statReason
是一个局部变量,其中范围仅绑定到方法。设置一个
global
变量或从函数statReason返回变量,结果在runjasonrequest中定义,无法在showrequestresult中访问,请尝试添加行,将(statReason+“/n”+结果)打印到函数runjasonrequest,不需要ShowRequestResultHanks,但加载页面时它将以这种方式运行,我加入了一个函数,这样我就可以在不需要时调用请求,而不是在页面加载Hanks时调用请求,您的方法让我学到了更多,谢谢。您知道如何在ttk.Entry(frmtxtb,width=150,textvariable=()).grid(column=2,row=4,padx=10,pady=10,ipady=75)中显示getjasonrequest()吗