"UCS-2' codec ne peut pas encoder des caractères en position 1050-1050
Lorsque j'exécute mon code Python, j'obtiens les erreurs suivantes:
File "E:\python343\crawler.py", line 31, in <module>
print (x1)
File "E:\python343\lib\idlelib\PyShell.py", line 1347, in write
return self.shell.write(s, self.tags)
UnicodeEncodeError: 'UCS-2' codec can't encode characters in position 1050-1050: Non-BMP character not supported in Tk
Voici mon code:
x = g.request('search', {'q' : 'TaylorSwift', 'type' : 'page', 'limit' : 100})['data'][0]['id']
# GET ALL STATUS POST ON PARTICULAR PAGE(X=PAGE ID)
for x1 in g.get_connections(x, 'feed')['data']:
print (x1)
for x2 in x1:
print (x2)
if(x2[1]=='status'):
x2['message']
Comment puis-je résoudre ce problème?
si vous avez besoin de voir les bmp caractères Unicode; vous pouvez exécuter python de manière interactive dans l'environnement qui peut montrer par exemple, dans ConEmu de la console ou d'un navigateur web. Essayez de ipython notebook.
OriginalL'auteur Andi | 2015-09-07
Vous devez vous connecter pour publier un commentaire.
Vos données contient des caractères en dehors de la Plan Multilingue de Base. Emoji par exemple, sont en dehors de la BMP, et le système de fenêtre utilisé par de l'INACTIVITÉ, les Savoirs traditionnels, ne peut pas gérer ce genre de personnages.
Vous pouvez utiliser un table de traduction à la carte tout l'extérieur de la BMP à la caractère de remplacement:
La
non_bmp_map
cartes de tous les codepoints à l'extérieur de la BMP (tout codepoint supérieur à 0xFFFF, tout le chemin jusqu'à la plus Unicode codepoint votre version de Python peut gérer) à U+FFFD CARACTÈRE DE REMPLACEMENT:n'est pas une chaîne, mais un dictionnaire. Vous pourriez faire
str(x1).translate(non_bmp_map)
dans ce cas.OriginalL'auteur Martijn Pieters
Aucun de ces fonctionné pour moi, mais ce qui suit ne. Cela suppose que public_tweets a été tiré à partir tweepy api.recherche
OriginalL'auteur Keith Student