Python - 解析Json文件并从列表中的字典中获取多个值

时间:2018-03-09 03:06:35

标签: python json dictionary

json文件,我成功解析了它,如下所示。我想要的是获取['用户']的ID并获取相关ID的['照片'] [' Url']部分。

我的.json输出

{u'Success': True,
u'Total': 172159,
u'Users': [{u'AboutMe': u'U\xe7mak i\xe7in ku\u015f olmak gerekmiyor, k\xfc\xe7\xfck sevin\xe7ler olsun yeter.',
         u'Age': 34,
         u'Education': None,
         u'EyeColor': u'Mavi',
         u'Gender': 2,
         u'HairColor': u'A\xe7\u0131k kahve',
         u'Height': 183,
         u'Id': u'19185978',
         u'IsHot': False,
         u'IsOnline': True,
         u'Job': u'Serbest meslek',
         u'JobId': None,
         u'LastActivityDate': u'2018-03-07T03:43:50.53855Z',
         u'Location': u'\u0130zmir - Merkez',
         u'LookingFor': None,
         u'MaritalStatus': u'Single',
         u'MaritalStatusId': None,
         u'Photo': None,
         u'Photos': [{u'CreateDate': u'0001-01-01T00:00:00',
                      u'Id': None,
                      u'PhotoName': None,
                      u'State': None,
                      u'Url': u'https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/a2f/a2fe1237-e0e1-4456-bd7b-b1d55bc8f00e.jpg.jpg'},
                     {u'CreateDate': u'0001-01-01T00:00:00',
                      u'Id': None,
                      u'PhotoName': None,
                      u'State': None,
                      u'Url': u'https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/87f/87fba6a5-8555-4b53-968b-678f832fd28f.jpg.jpg'},
                     {u'CreateDate': u'0001-01-01T00:00:00',
                      u'Id': None,
                      u'PhotoName': None,
                      u'State': None,
                      u'Url': u'https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/18d/18d3d6bc-97ec-49c3-80d4-57d4e58d020f.jpg.jpg'},
                     {u'CreateDate': u'0001-01-01T00:00:00',
                      u'Id': None,
                      u'PhotoName': None,
                      u'State': None,
                      u'Url': u'https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/eba/eba25a06-4168-49cf-b0cb-e501d0efb965.jpg.jpg'}],
         u'RelationshipType': u'E-Posta Arkada\u015fl\u0131\u011f\u0131, , , ',
         u'StatusMessage': u'Siz istiyorsunuz ki her \u015fey benim istedi\u011fim gibi olsun, herkes pe\u015fimden ko\u015fsun. Ama her zaman \xf6yle olmuyor.',
         u'TownName': None,
         u'Username': u'45ahmet35',
         u'Weight': 85,
         u'Zodiac': u'Ko\xe7',
         u'ZodiacId': None},
        {u'AboutMe': None,
         u'Age': 42,
         u'Education': None,
         u'EyeColor': u'Kahverengi',
         u'Gender': 2,
         u'HairColor': u'K\u0131rla\u015fm\u0131\u015f',
         u'Height': 175,
         u'Id': u'19274893',
         u'IsHot': False,
         u'IsOnline': True,
         u'Job': u'',
         u'JobId': None,
         u'LastActivityDate': u'2018-03-07T03:43:24.555Z',
         u'Location': u'\u0130zmir - Alia\u011fa',
         u'LookingFor': None,
         u'MaritalStatus': u'Single',
         u'MaritalStatusId': None,
         u'Photo': None,
         u'Photos': [{u'CreateDate': u'0001-01-01T00:00:00',
                      u'Id': None,
                      u'PhotoName': None,
                      u'State': None,
                      u'Url': u'https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/bf0/bf0fbad6-076a-4924-b496-5385044c08bc.jpg.jpg'},
                     {u'CreateDate': u'0001-01-01T00:00:00',
                      u'Id': None,
                      u'PhotoName': None,
                      u'State': None,
                      u'Url': u'https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/998/99893a8e-5342-441f-bd83-82fa20bdb27a.jpg.jpg'},
                     ],
         u'RelationshipType': u'',
         u'StatusMessage': u'Yok ',
         u'TownName': None,
         u'Username': u'kaya3510',
         u'Weight': 80,
         u'Zodiac': u'Ko\xe7',
         u'ZodiacId': None},

我的Python代码

import json

json_obj = json.load(open("13.json"))

for i in json_obj['Users']:
    print i['Id']
    print i['Photos']['Url']

我得到的错误。

19185978 Traceback(最近一次调用最后一次):   文件" /root/Desktop/siberAlem/parser.py" ;,第7行,在     打印我['照片'] ['网址'] TypeError:list indices必须是整数,而不是str

提前致谢。

1 个答案:

答案 0 :(得分:0)

这应该有所帮助:

for i in json_obj['Users']:
    print i["Id"]
    for j in i["Photos"]:
        print j["Url"]

<强>输出:

19185978
https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/a2f/a2fe1237-e0e1-4456-bd7b-b1d55bc8f00e.jpg.jpg
https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/87f/87fba6a5-8555-4b53-968b-678f832fd28f.jpg.jpg
https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/18d/18d3d6bc-97ec-49c3-80d4-57d4e58d020f.jpg.jpg
https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/eba/eba25a06-4168-49cf-b0cb-e501d0efb965.jpg.jpg
19274893
https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/bf0/bf0fbad6-076a-4924-b496-5385044c08bc.jpg.jpg
https://diymyqt2ncnnc.cloudfront.net/s3/traktorumnetphotos/998/99893a8e-5342-441f-bd83-82fa20bdb27a.jpg.jpg