J'essaie de créer une application CLI simple pour récupérer les données météorologiques. Malheureusement je ne suis pas allé très loin avec ça parce que je suis bloqué à un stade précoce. Ceci est mon code à ce jour:Obtenir l'ID de l'emplacement à partir de l'entrée de l'utilisateur avec pywapi
import pywapi, string
loc=input("What is the city you're closest to?")
loc=loc.lower
#this will give you a dictionary of all cities in the world with this city's name Be specific (city, country)!
loc_id=pywapi.get_location_ids(loc)
#apparently this is a needed workaround to access last item of dictionary
for i in loc_id:
loc_id=i
#before I go on to code anything further, I just want to use print to check that I've got the two variables I need
print (loc,loc_id)
Quand on vous demande une ville, je pourrais entrer à Londres par exemple, ou Londres, Royaume-Uni, mais les deux vomir une erreur: (ce qui est sur ma machine locale)
Traceback (most recent call last):
File "get_weather.py", line 7, in <module>
loc_id=pywapi.get_location_ids(loc)
File "/home/james/.local/lib/python3.4/site-packages/pywapi.py", line 825, in get_location_ids
loc_id_data = get_loc_id_from_weather_com(search_string)
File "/home/james/.local/lib/python3.4/site-packages/pywapi.py", line 856, in get_loc_id_from_weather_com
url = LOCID_SEARCH_URL % quote(search_string)
File "/usr/lib/python3.4/urllib/parse.py", line 694, in quote
return quote_from_bytes(string, safe)
File "/usr/lib/python3.4/urllib/parse.py", line 719, in quote_from_bytes
raise TypeError("quote_from_bytes() expected bytes")
TypeError: quote_from_bytes() expected bytes
Et cette erreur, ce qui est différent, est quand je me sers Pythonanywhere
Traceback (most recent call last):
File "/home/pydavith/get_weather.py", line 7, in <module>
loc_id=pywapi.get_location_ids(loc)
File "/home/pydavith/.local/lib/python3.6/site-packages/pywapi.py", line 825, in get_location_ids
loc_id_data = get_loc_id_from_weather_com(search_string)
File "/home/pydavith/.local/lib/python3.6/site-packages/pywapi.py", line 852, in get_loc_id_from_weather_co
m
search_string = unidecode(search_string)
File "/usr/local/lib/python3.6/dist-packages/unidecode/__init__.py", line 48, in unidecode_expect_ascii
bytestring = string.encode('ASCII')
AttributeError: 'builtin_function_or_method' object has no attribute 'encode'
est-ce que quelqu'un a une idée de ce qui ne va pas ici? J'ai fait du canard et ai beaucoup googlé, mais rien n'est apparu. L'aide serait appréciée!
vous utilisez deux versions différentes de python (3.4 et 3.6), ce qui pourrait expliquer pourquoi les deux sont différents, sinon les erreurs elles-mêmes ... – hwjp