[英]Weather API, Python or JavaScript
我正在嘗試讓天氣 API 正常工作。 但是我如何才能獲得 C° 和天氣圖標; 沒有其他的?
使用 pip 安裝pywapi后,打開 ipython shell 並探索pywapi
可以做什么。 這是一個實際上可以為您提供所需內容的示例:-
In [1]: import pywapi
In [2]: pywapi.
pywapi.GOOGLE_CITIES_URL pywapi.YAHOO_WEATHER_URL pywapi.get_weather_from_weather_com pywapi.urlopen
pywapi.GOOGLE_COUNTRIES_URL pywapi.getText pywapi.get_weather_from_yahoo pywapi.wind_beaufort_scale
pywapi.NOAA_WEATHER_URL pywapi.get_cities_from_google pywapi.minidom pywapi.wind_direction
pywapi.URLError pywapi.get_countries_from_google pywapi.quote pywapi.xml_get_attrs
pywapi.WEATHER_COM_URL pywapi.get_everything_from_yahoo pywapi.re pywapi.xml_get_ns_yahoo_tag
pywapi.YAHOO_WEATHER_NS pywapi.get_weather_from_noaa pywapi.sys pywapi.yield_all_country_city_codes_yahoo
In [2]: pywapi.get_weather_from_yahoo?
Type: function
String Form:<function get_weather_from_yahoo at 0x10daeb9b0>
File: /Users/calvin/.virtualenvs/myweather/lib/python2.7/site-packages/pywapi.py
Definition: pywapi.get_weather_from_yahoo(location_id, units='metric')
Docstring:
Fetches weather report from Yahoo! Weather
Parameters:
location_id: A five digit US zip code or location ID. To find your location ID,
browse or search for your city from the Yahoo! Weather home page (http://weather.yahoo.com/)
The weather ID is in the URL for the forecast page for that city. You can also get
the location ID by entering your zip code on the home page. For example, if you
search for Los Angeles on the Weather home page, the forecast page for that city
is http://weather.yahoo.com/forecast/USCA0638.html. The location ID is USCA0638.
units: type of units. 'metric' for metric and '' for non-metric
Note that choosing metric units changes all the weather units to metric,
for example, wind speed will be reported as kilometers per hour and
barometric pressure as millibars.
Returns:
weather_data: a dictionary of weather data that exists in XML feed.
See http://developer.yahoo.com/weather/#channel
In [3]: pywapi.get_weather_from_yahoo('USCA0638')
Out[3]:
{'astronomy': {'sunrise': u'6:16 am', 'sunset': u'7:28 pm'},
'atmosphere': {'humidity': u'67',
'pressure': u'1013.7',
'rising': u'1',
'visibility': u'16.09'},
'condition': {'code': u'33',
'date': u'Sat, 20 Apr 2013 9:46 pm PDT',
'temp': u'18',
'text': u'Fair',
'title': u'Conditions for Los Angeles, CA at 9:46 pm PDT'},
'forecasts': [{'code': u'31',
'date': u'20 Apr 2013',
'day': u'Sat',
'high': u'26',
'low': u'15',
'text': u'Clear'},
{'code': u'32',
'date': u'21 Apr 2013',
'day': u'Sun',
'high': u'26',
'low': u'14',
'text': u'Sunny'},
{'code': u'34',
'date': u'22 Apr 2013',
'day': u'Mon',
'high': u'22',
'low': u'13',
'text': u'Mostly Sunny'},
{'code': u'30',
'date': u'23 Apr 2013',
'day': u'Tue',
'high': u'21',
'low': u'14',
'text': u'Partly Cloudy'},
{'code': u'30',
'date': u'24 Apr 2013',
'day': u'Wed',
'high': u'19',
'low': u'13',
'text': u'Partly Cloudy'}],
'geo': {'lat': u'34.05', 'long': u'-118.23'},
'html_description': u'\n[![][5]][5]<br />\n<b>Current Conditions:</b><br />\nFair, 18 C<BR />\n<BR /><b>Forecast:</b><BR />\nSat - Clear. High: 26 Low: 15<br />\nSun - Sunny. High: 26 Low: 14<br />\nMon - Mostly Sunny. High: 22 Low: 13<br />\nTue - Partly Cloudy. High: 21 Low: 14<br />\nWed - Partly Cloudy. High: 19 Low: 13<br />\n<br />\n<a href="http://us.rd.yahoo.com/dailynews/rss/weather/Los_Angeles__CA/*http://weather.yahoo.com/forecast/USCA0638_c.html">Full Forecast at Yahoo! Weather</a><BR/><BR/>\n(provided by <a href="http://www.weather.com" >The Weather Channel</a>)<br/>\n',
'link': u'http://us.rd.yahoo.com/dailynews/rss/weather/Los_Angeles__CA/*http://weather.yahoo.com/forecast/USCA0638_c.html',
'location': {'city': u'Los Angeles', 'country': u'US', 'region': u'CA'},
'title': u'Yahoo! Weather - Los Angeles, CA',
'units': {'distance': u'km',
'pressure': u'mb',
'speed': u'km/h',
'temperature': u'C'},
'wind': {'chill': u'18', 'direction': u'0', 'speed': u'0'}}
正如您在結果中看到的,您可以在html_description
( http://l.yimg.com/a/i/us/we/52/33.gif ) 和temp
獲得天氣圖標。 由於返回給您的結果就是一切,因此您需要像使用 Python 字典一樣提取/訪問它。
更新
所有城市代碼
這是幫助您獲取所有國家/地區、城市代碼的功能
In [4]: pywapi.yield_all_country_city_codes_yahoo?
Type: function
String Form:<function yield_all_country_city_codes_yahoo at 0x10daebaa0>
File: /Users/calvin/.virtualenvs/myweather/lib/python2.7/site-packages/pywapi.py
Definition: pywapi.yield_all_country_city_codes_yahoo(country_code, cities)
Docstring:
Yield all cities codes for a specific country.
Parameters:
country_code: A four letter code of the necessary country. For example 'GMXX' or 'FRXX'.
cities: The number of cities to yield
Returns:
country_city_codes: A generator containing the city codes
您可以使用 Metwit天氣 api 。
如果您可以在客戶端實現它們:200 個請求/天(基於 ip 的限制)無需身份驗證。 全球覆蓋,符合 JSON 和 REST。 你可以免費注冊額外的 API 調用,如果你仍然需要它來調用它們服務器端,基本計划非常便宜。
這里有一個 jQuery 的小例子: http : //jsbin.com/isukam/1使用我們的天氣資源。
完全披露:我擁有這個甜蜜的 API。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.