为什么我在使用python请求模块时总是从服务器获取字节数据?

时间:2016-11-04 17:12:24

标签: python http-headers python-requests

我想使用python请求模块从服务器获取数据,但我总是得到字节数据,即使我设置了headers={'content-type':'application/json;charset=utf-8'}

我的代码:

import requests
from io import BytesIO
headers={'content-type':'application/json;charset=utf-8'}
#response=requests.get("https://api-dev.creams.io/buildings/2/contract-        templates",headers=headers)
r = requests.get('https://developer.github.com/v3/timeline.json',headers=headers)
print(r.headers)
# response = urlopen("https://beta.creams.io/") 

当我打印标题时,content-type仍为text/html;charset-utf-8 我总是得到字节数据。当我使用r.text时,出现了错误:UnicodeEncodeError: 'ascii' codec can't encode character '\u2022' in position 382: ordinal not in range(128)。我使用r.content方法,我总是得到字节数据(以b'开头),我只想获得utf-8编码字符串。我该如何解决?

1 个答案:

答案 0 :(得分:-1)

这应该可以正常工作:

import requests as req
r = req.get('https://developer.github.com/v3/timeline.json')
print(r.text)