Je crée une certaine fonction qui peut me donner des informations sur le ISS (Station spatiale internationale) et un emplacement donné (en coordonnées décimales) pouvant varier, en fonction de l'entrée. Mais quand j'utilise ce:
print(ubicacion.raw['address']['country'],",",ubicacion.raw['address']['city'])
Cela fonctionne, mais pour certains pays et, par exemple, lorsque j'essaie avec les coordonnées, Canberra, il affiche les informations suivantes:
Corinna Street, Phillip, District de Woden Valley, Territoire de la capitale australienne, 2606, Australie
et puisqu'il ne fournit pas la ville, lorsque j'utilise la clé "city"
, Je reçois évidemment une erreur, car cela n'existe pas dans cette liste.
Donc, une solution que j'ai eu dans mon esprit était que, depuis au moins, je vais toujours avoir le pays, peut-être que je pourrais utiliser une autre fonction, celle basée sur le pays, je pouvais obtenir la capitale, qui est celle dont j'ai besoin et il existe , J'ai utilisé "CountryInfo"
(from countryinfo import CountryInfo
). Le problème est que lorsque j'essaie de l'utiliser, je reçois l'erreur suivante:
UNICODEDECODEError: Codec 'Charmap' ne peut pas décoder octet 0x81 en position 49: Cartes de caractères vers
J'ai déjà recherché des questions similaires et de nombreuses personnes suggèrent de spécifier le codage, mais il semble ne pas fonctionner avec geopy
. Depuis que j'ai essayé ceci:
countryinfo=CountryInfo(country,encoding="utf8")
et j'ai eu cette erreur:
TypeError: init () a eu un argument de mot clé inattendu 'coding'
Référencé de: https://python-forum.io/thread-countryinfo-package-chamapap-error
de la réponse de @ Snippsat SEP-14-2018, 11:37
Ouvrir CountryInfo.py In ..LIb\Sites-Packages\CountryInfo Dossier. Changer la ligne à:
country_info = json.load(open(file_path, encoding='utf-8'))
Ça marche pour moi.
from countryinfo import CountryInfo
country = CountryInfo('Singapore')
country.capital()
# returns string
'Singapore'
country.Capital () Vous obtiendra la capitale dans un format de chaîne