Ne pouvez pas imprimer de caractère '\u2019' en Python à partir d'objet JSON

Comme un projet pour m'aider à apprendre le Python, je suis en train de faire un CMD visionneuse de Reddit en utilisant les données json (par exemple www.reddit.com/all/.json). Lorsque certains postes se montrer et je tente de les imprimer (c'est ce que je suppose est la cause de l'erreur), j'obtiens cette erreur:

Traceback (most recent call last):
Fichier "C:\Users\nsaba\Desktop\reddit_viewer.py", à la ligne 33, dans
print ( "%d. (%d) %s\n" % (i+1, obj['data']['score'], obj['data']['titre']))

Fichier "C:\Python33\lib\encodings\cp437.py", à la ligne 19, de coder
de retour de codecs.charmap_encode(d'entrée,de soi.les erreurs,encoding_map)[0]
UnicodeEncodeError: 'charmap' codec ne peut pas encoder les caractères '\u2019' à la position
32: tables de caractères à

C'est là que j'ai à traiter les données:

request = urllib.request.urlopen(url)
content = request.read().decode('utf-8')
jstuff = json.loads(content)

La ligne que j'utilise pour imprimer les données indiquées dans le message d'erreur ci-dessus:

print ( "%d. (%d) %s\n" % (i+1, obj['data']['score'], obj['data']['title']))

Quelqu'un peut-il suggérer où je pourrait mal se passer?

Le problème est presque certainement n'a rien à voir avec JSON, ou avec toute autre chose dans votre code. Essayez juste de print('\u2019') et de voir si vous recevez le même message d'erreur. Si oui, le problème, c'est que votre terminal (fenêtre"DOS") n'est pas programmé pour faire Unicode sortie correctement, et c'est ce que vous avez besoin pour réparer.
Oui, vous avez raison. La raison pour laquelle les données supplémentaires est parce que j'ai appris à poser des questions compte tenu de l'information que j'ai, et pas sur ce que je pense qu'il pourrait être.
Mais vous devez poster les minimes exemple complet qui démontre votre problème. Qu'est ce qu'un SSCCE est tout au sujet. Si print('\u2019') est suffisante pour démontrer, tout exemple plus compliqué va juste amener les gens sur les poursuites de l'oie sauvage. Si vous êtes inquiet les gens pourraient se demander "Pourquoi voudriez-vous l'impression que le personnage?", vous pouvez ensuite ajouter le contexte qui l'explique... mais encore, le plomb avec le problème réel.
Aussi, lorsque vous avez un problème avec Python 3, surtout quand il s'agit de quelque chose qui est un grand changement par rapport à Python 2 (comme Unicode impression), vous devez utiliser le python-3.x balise. Sinon, beaucoup de gens vont vous donner un Python 2.x-réponse spécifique (comme, en fait, deux personnes fait ici...).

OriginalL'auteur N-Saba | 2013-08-27