我有这样的代码,以便从网址中获取一些数据:
import urllib2
response = urllib2.urlopen('https://api.genderize.io/?name=joseph')
html = response.read()
>>> print html
{"name":"joseph","gender":"male","probability":"0.99","count":923}
到目前为止的一切都很好。但是,当我想从这本字典中获取“性别”数据时;
>>> print html["gender"]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: string indices must be integers, not str
我收到了上述错误。
我该如何解决问题?
答案 0 :(得分:3)
那是因为html
是字符串类型。要验证这一点,请尝试:
>>> type(html)
<type 'str'>
因此错误消息说字符串索引必须是整数,而不是str 。
您应该使用json
模块将其转换为JSON:
json.loads(html)['gender']