我在尝试解析json文件时遇到错误
{
0:
{
'data':
[
{
'state': 1,
'invitation_sent_at': None,
'group_id': None,
'firstname': 'goog',
'company': 'wbru',
'member_of': None,
'updated_at': '2017-07-21T08:07:45.375Z',
'last_login': None,
'manager_ad_id': None,
'distinguished_name': None,
'comment': '',
'username': 'predicted',
'title': '',
'lastname': 'hello',
'samaccountname': None,
'status': 1,
'locked_until': None,
'locale_code': None,
'role_id': None,
'userprincipalname': None,
'phone': '777',
'openid_name': 'gege',
'directory_id': None,
'id': 34486990,
'department': '',
'activated_at': None,
'external_id': None,
'created_at': '2017-07-21T08:07:45.347Z',
'email': 'gege@mail.ru',
'password_changed_at': None,
'invalid_login_attempts': None
},
],
'pagination':
{
'before_cursor': None,
'previous_link': None,
'after_cursor': None,
'next_link': None
},
'status':
{
'type': 'success',
'message': 'Success',
'code': 200,
'error': False
}
}
}
所以我需要得到身份证明。我用了
dumps = json.dumps(allUsers)
print(dumps)
这将打印出json文件。 但是当我试图获取数据或id时,它会显示此错误
print(dumps['data'])
Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: string indices must be integers
请帮助我获取身份证明。
答案 0 :(得分:1)
print(json.loads(dumps)[“data”][0]['id')
json.loads()
接受json字符串。然后根据你的json将它转换为python dict
或python list
。在这种情况下,它会将其转换为dict
。
获得词典后,您可以使用["data"]
访问属性。
如果您遇到TypeError: string indices must be integers
错误,则表示json.loads(dumps)
可能会返回list
个dict
,而不是dict
。所以你可能需要做以下几点。
print(json.loads(dumps)[0]["data"][0]["id"]
[0]
将选择列表中的第一个对象,然后您可以访问其数据属性。
希望有意义!
答案 1 :(得分:0)
转储是一个字符串而不是字典,因此您无法访问“数据”