我有两个文件
check.py
import UrlParsing as owm
API_key = 'private_API_Key'
obj1 = owm.OWM(API_key)
cd = obj1.three_hours_forecast("London, uk")
print(cd)
和 UrlParsing.py
import urllib
class OWM(object):
def __init__(self, API_key):
self.API_key = API_key
def three_hours_forecast(city, country):
cty = city
api_url = "http://api.openweathermap.org/data/2.5/forecast?q={},{}&mode=json&units=metric&APPID={}".format(cty, country, self.API_key)
data_dictionary = get_dict(api_url)
return data_dictionary
def get_dict(self, api_url):
url = urllib.urlopen(api_url)
output_data = url.read().decode('utf-8')
data_dict = json.loads(output_data)
url.close()
print(data_dict)
return data_dict
我正在尝试创建一个UrlParsing模块,以便我可以在我的主程序中使用它。有人可以告诉我这个程序有什么问题。我得到了NameError:name' self'没有定义。
我做错了什么?你能告诉我如何纠正它吗?我试着对同样的问题进行一些跟进,但我没有运气。我感谢任何帮助。
错误跟踪此行
api_url = "http://api.openweathermap.org/data/2.5/forecast?q={},{}&mode=json&units=metric&APPID={}".format(cty, country, self.API_key)
答案 0 :(得分:4)
你可以尝试
<强> check.py 强>
cd = obj1.three_hours_forecast("London", "uk")
<强> UrlParsing.py 强>
def three_hours_forecast(self, city, country):
cty = city
api_url = "http://api.openweathermap.org/data/2.5/forecast?q={},{}&mode=json&units=metric&APPID={}".format(cty, country, self.API_key)
data_dictionary = get_dict(api_url)
return data_dictionary
我希望这对你有所帮助。