Python TypeError:字符串索引必须是带.json()字典的整数
我试图访问字典键和值,但获取TypeError:执行此操作时字符串索引必须是整数错误 我正在使用下面的代码Python TypeError:字符串索引必须是带.json()字典的整数,python,json,rest,dictionary,Python,Json,Rest,Dictionary,我试图访问字典键和值,但获取TypeError:执行此操作时字符串索引必须是整数错误 我正在使用下面的代码 def function(): EMAILS_FOR_ISSUES = 'https://github.com/api/v3/users/JimmyBuffet' resource = requests.get(EMAILS_FOR_ISSUES, auth=AUTH) if not resource.status_code == 200: rais
def function():
EMAILS_FOR_ISSUES = 'https://github.com/api/v3/users/JimmyBuffet'
resource = requests.get(EMAILS_FOR_ISSUES, auth=AUTH)
if not resource.status_code == 200:
raise Exception(resource.status_code)
print(type(resource.json()))
print(resource.json())
for x in resource.json():
print(x)
print(x[0])
print(x[4])
user_email = x['email']
print(user_email)
return
我得到的答复是*注意:为了可读性,我在这里格式化了dict输出
<type 'dict'>
{
u'public_repos': 1,
u'site_admin': False,
u'gravatar_id': u'',
u'hireable': None,
u'id': 6048,
u'email': u'jbuffet@xyzxyz.com'
}
public_repos
p
i
Traceback (most recent call last):
File "retrieve_old_issues.py", line 122, in <module>
function()
File "retrieve_old_issues.py", line 58, in function
user_email = x['email']
TypeError: string indices must be integers
{
公共回购:1,
u'site_admin':False,
u'gravatar_id':u',
“可雇佣”:无,
u'id':6048,
u'email':u'jbuffet@xyzxyz.com'
}
公共回购
P
我
回溯(最近一次呼叫最后一次):
文件“retrieve_old_issues.py”,第122行,在
函数()
文件“retrieve_old_issues.py”,第58行,在函数中
用户_email=x['email']
TypeError:字符串索引必须是整数
目标是获取电子邮件。我认为键前面的unicode字符也会弄乱一些东西,但是还没有找到任何关于它的东西。为什么这不起作用
for x in resource.json():
在这里,您所做的是在字典中的每个条目上循环,并将密钥分配给x。例如,在for循环的第一次迭代中
x = "public_repo"
这就是为什么会为x[0]和x[4]打印“p”和“i”,因为它们分别是字符串“public_repo”的第0位和第4位
相反,您要做的是将resource.json()分配给一个变量,并简单地索引到该变量中。比如说,
dict = resource.json()
print(dict["email"])
在这里,您所做的是在字典中的每个条目上循环,并将密钥分配给x。例如,在for循环的第一次迭代中
x = "public_repo"
这就是为什么会为x[0]和x[4]打印“p”和“i”,因为它们分别是字符串“public_repo”的第0位和第4位
相反,您要做的是将resource.json()分配给一个变量,并简单地索引到该变量中。比如说,
dict = resource.json()
print(dict["email"])