将json数据保存到python列表中时出现问题

I'm trying to get two attributes at the time from my json data and add them as an item on my python list. However, when trying to add those two: ['emailTypeDesc']['createdDate'] it throws an error. Could someone help with this? thanks in advance!

json:

{
'readOnly': False,
'senderDetails': {'firstName': 'John', 'lastName': 'Doe', 'emailAddress': 'johndoe@gmail.com', 'emailAddressId': 123456, 'personalId': 123, 'companyName': 'ACME‘},
'clientDetails': {'firstName': 'Jane', 'lastName': 'Doe', 'emailAddress': 'janedoe@gmail.com', 'emailAddressId': 654321, 'personalId': 456, 'companyName': 'Lorem Ipsum‘}},
'notesSection': {},
'emailList': [{'requestId': 12345667, 'emailId': 9876543211, 'emailType': 3, 'emailTypeDesc': 'Email-In', 'emailTitle': 'SampleTitle 1', 'createdDate': '15-May-2020 11:15:52', 'fromMailList': [{'firstName': 'Jane', 'lastName': 'Doe', 'emailAddress': 'janedoe@gmail.com',}]},
          {'requestId': 12345667, 'emailId': 14567775, 'emailType': 3, 'emailTypeDesc': 'Email-Out', 'emailTitle': 'SampleTitle 2', 'createdDate': '16-May-2020 16:15:52', 'fromMailList': [{'firstName': 'Jane', 'lastName': 'Doe', 'emailAddress': 'janedoe@gmail.com',}]},
          {'requestId': 12345667, 'emailId': 12345, 'emailType': 3, 'emailTypeDesc': 'Email-In', 'emailTitle': 'SampleTitle 3', 'createdDate': '17-May-2020 20:15:52', 'fromMailList': [{'firstName': 'Jane', 'lastName': 'Doe', 'emailAddress': 'janedoe@gmail.com',}]   
}

蟒蛇:

final_list = []

data = json.loads(r.text)
myId = [(data['emailList'][0]['requestId'])]
for each_req in myId:
    final_list.append(each_req)
myEmailList = [mails['emailTypeDesc']['createdDate'] for mails in data['emailList']]
for each_requ in myEmailList:
    final_list.append(each_requ)
return final_list

当我运行上面的代码时出现此错误:

TypeError: string indices must be integers

Desired output for final_list:

[12345667, 'Email-In', '15-May-2020 11:15:52',  'Email-Out', '16-May-2020 16:15:52', 'Email-In', '17-May-2020 20:15:52']

我的问题肯定在这一行:

myEmailList = [mails['emailTypeDesc']['createdDate'] for mails in data['emailList']]

because when I run this without the second attribute ['createdDate'] it would work, but I need both attributes on my final_list:

  myEmailList = [mails['emailTypeDesc'] for mails in data['emailList']]
评论
心已凉
心已凉

JSON中的字符串必须用双引号引起来,而不是单引号。

编辑:以及名称。

点赞
评论