循环遍历Python中列表中的几个词典

时间:2015-04-10 14:48:20

标签: python dictionary

我有这个清单:

"guests_info": [
              {
                  "title": "Mr.",
                  "first_name": "John",
                  "mi": null,
                  "last_name": "Smith",
                  "suffix": "Sr.",
                  "age": "18+"
              },
              {
                  "title": "Mr.",
                  "first_name": "James",
                  "mi": null,
                  "last_name": "Jones",
                  "suffix": null,
                  "age": "18+"
              }
          ]

是json。所以,我要做的就是创建一个像这样的身体:

{

"profile": {
    "name": {
        "title": "Miss",
        "firstName": "Kairi",
        "lastName": "asdasd"
    },
    "age": 8
},
"preferences": {
    "avatarIdentifier": "15655408",
    "favoriteCharacterIdentifier": "15655408"
},
"friendsAndFamily": {
    "groupClassification": {
        "name": "TRAVELLING_PARTY"
    },
    "accessClassification": {
        "name": "PLAN_VIEW_SHARED"
    }
}

}

对于列表中的每个访客,并对此网址执行POST:

https://env5.xxx.api.go.com/xxxxx/xxxx/id;swid=" + swid_id + "/managed-guests

Preferences等某些内容对于每位访客都是相同的。我对python有一点经验。我想我必须将guests_info置于for循环中,并且对于每个字典我必须创建一个包含新主体的新字符串,但我不确定如何准确计算{{1}中有多少字典}}

任何帮助都会非常感激

1 个答案:

答案 0 :(得分:1)

像@Cfreak建议的那样,只需创建一个能够适当发布您要发布的数据的函数。要创建该数据,您需要做的是遍历列表,然后遍历每个字典的键。

如,

dict_list = [
        { 'foo' : 'baz',
          'bar' : 'qux'
          },
        { 'foo' : 'qux',
          'bar' : 'baz'
          }
        ]

随后,在某些时候

for each in dict_list:
    for key in each:
        print(key + ": " + each[key])

请注意,数据不会以任何特定顺序排列。如果您需要维护订单,可以手动引用每个密钥。

要确定列表的长度,您可以

len(dict_list)将输出2

如果您需要协助创建JSON查询的主体,我当然可以帮助您。