尝试从 python 调用 restful api - 'resp' is undefined [closed]

Try to call restful api from python - 'resp' is undefined [closed]

提问人:WindSwept 提问时间:6/25/2021 更新时间:6/25/2021 访问量:77

问:


这个问题是由错别字或无法再现的问题引起的。虽然类似的问题可能在这里是主题,但这个问题的解决方式不太可能帮助未来的读者。

2年前关闭。

我是python的新手。我正在尝试从 Visual Studio 2019 执行以下代码。我收到一个错误:名称“resp”未定义。

#! /usr/bin/env python
import httplib2
# These aren't needed, just for this example
from pprint import pformat
def post_elexon(url):
    http_obj = httplib2.Http()
    resp, content = http_obj.request(
        uri=url,
        method='GET',
        headers={'Content-Type': 'application/xml; charset=UTF-8'},
)
print ("===Response===")
print (pformat(resp))

print ("===Content===")
print (pformat(content))
print ("===Finished===")
def main():
    post_elexon(
url='https://api.bmreports.com/BMRS/B1770/v1?APIKey=MY_API_KEY&SettlementDate=2015-03-01&Period=1&ServiceType=csv',
)
if __name__ == "__main__":
    main()

任何帮助将不胜感激。

评论

1赞 Random Davis 6/25/2021
您尝试在运行之前进行打印,即使它确实首先运行,也只存在于 的范围内。resp()main()resppost_elexon

答:

1赞 Random Davis 6/25/2021 #1

您需要显式返回 和 ,并且仅在运行后尝试打印它们:respcontentpost_elexon

#! /usr/bin/env python
import httplib2
# These aren't needed, just for this example
from pprint import pformat
def post_elexon(url):
    http_obj = httplib2.Http()
    resp, content = http_obj.request(
        uri=url,
        method='GET',
        headers={'Content-Type': 'application/xml; charset=UTF-8'},)
    return resp, content

def main():
    resp, content = post_elexon(url='https://api.bmreports.com/BMRS/B1770/v1?APIKey=MY_API_KEY&SettlementDate=2015-03-01&Period=1&ServiceType=csv',)
    print ("===Response===")
    print (pformat(resp))

    print ("===Content===")
    print (pformat(content))
    print ("===Finished===")

if __name__ == "__main__":
    main()

评论

1赞 WindSwept 6/25/2021
非常感谢Random Davis!!