再次转换为UTF-8

gag*_*ina 2 python utf-8 character-encoding

我有这串 Traor\u0102\u0160

Traor\u0102\u0160应该产生Traoré。然后Traoréutf-8解码应该产生Traorè

我如何将其转换为Traorè

什么样的字符是Traor\u0102\u0160?Unicode?

我已经阅读了很多http://docs.python.org/howto/unicode.html#encodings。但是我还是很困惑。

我通过以下请求获取此数据:

import json
import requests

# making a request to get this json
r = requests.get('http://cdn.content.easports.com/fifa/fltOnlineAssets/2013/fut/items/web/199074.json')
print r.json
Run Code Online (Sandbox Code Playgroud)

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import json
import requests

headers = {'Content-Type': 'application/json'}

r = requests.get('http://cdn.content.easports.com/fifa/fltOnlineAssets/2013/fut/items/web/199074.json', headers=headers)


print r.content

#prints
{"Item":{"FirstName":"Lacina","LastName":"Traoré","CommonName":null,"Height":"203","DateOfBirth":{"Year":"1990","Month":"8","Day":"20"},"PreferredFoot":"Left","ClubId":"100766","LeagueId":"67","NationId":"108","Rating":"78","Attribute1":"79","Attribute2":"71","Attribute3":"45","Attribute4":"69","Attribute5":"50","Attribute6":"72","Rare":"1","ItemType":"PlayerA"}}
Run Code Online (Sandbox Code Playgroud)

基本上,我需要设置发送严格的标题。

谢谢你们

Bur*_*lid 5

您需要告诉请求期望什么编码

>>> import requests
>>> r = requests.get(url)
>>> r.encoding = 'UTF-8'
>>> r.json[u'Item'][u'LastName']
u'Traor\xe9'
Run Code Online (Sandbox Code Playgroud)

否则,您将获得以下信息:

>>> r = requests.get(url)
>>> r.json['Item']['LastName']
u'Traor\u0102\u0160'
Run Code Online (Sandbox Code Playgroud)