【问题标题】:I have json data and i want to select some items only how can i do it in python?我有json数据,我只想选择一些项目我怎么能在python中做到这一点?
【发布时间】:2015-01-26 11:37:02
【问题描述】:
   {
       "data": [
            {
                "category": "Organization", 
                "name": "GITM IEEE", 
                "category_list": [
                    {
                        "id": "198503866828628", 
                        "name": "Organization"
                    }
                ], 
                "access_token": "x", 
                "perms": [
                    "EDIT_PROFILE", 
                    "CREATE_CONTENT", 
                    "MODERATE_CONTENT", 
                    "CREATE_ADS", 
                    "BASIC_ADMIN"
                ], 
                "id": "474676675993584"
            }, 
            {
                "category": "Event planning/event services", 
                "name": "Ignitron 2014", 
                "category_list": [
                    {
                        "id": "192119584190796", 
                        "name": "Event"
                    }
                ], 
                "access_token": "x", 
                "perms": [
                    "ADMINISTER", 
                    "EDIT_PROFILE", 
                    "CREATE_CONTENT", 
                    "MODERATE_CONTENT", 
                    "CREATE_ADS", 
                    "BASIC_ADMIN"
                ], 
                "id": "731808386867764"
            }, 
            {
                "access_token": "x", 
                "category": "Community organization", 
                "perms": [
                    "ADMINISTER", 
                    "EDIT_PROFILE", 
                    "CREATE_CONTENT", 
                    "MODERATE_CONTENT", 
                    "CREATE_ADS", 
                    "BASIC_ADMIN"
                ], 
                "name": "GITM Model United Nations (GITM MUN)", 
                "id": "232082683584902"
            }, 
            {
                "access_token": "x", 
                "category": "Computers/technology", 
                "perms": [
                    "ADMINISTER", 
                    "EDIT_PROFILE", 
                    "CREATE_CONTENT", 
                    "MODERATE_CONTENT", 
                    "CREATE_ADS", 
                    "BASIC_ADMIN"
                ], 
                "name": "Bros!s", 
                "id": "332832946796051"
            }, 
            {
                "access_token": "x", 
                "category": "Musician/band", 
                "perms": [
                    "ADMINISTER", 
                    "EDIT_PROFILE", 
                    "CREATE_CONTENT", 
                    "MODERATE_CONTENT", 
                    "CREATE_ADS", 
                    "BASIC_ADMIN"
                ], 
                "name": "6 Strings", 
                "id": "267855836697950"
            }, 
            {
                "access_token": "x", 
                "category": "Sports team", 
                "perms": [
                    "ADMINISTER", 
                    "EDIT_PROFILE", 
                    "CREATE_CONTENT", 
                    "MODERATE_CONTENT", 
                    "CREATE_ADS", 
                    "BASIC_ADMIN"
                ], 
                "name": "Counter Strike::74th Cavalry", 
                "id": "486465148068957"
            }, 
            {
                "access_token": "x", 
                "category": "Entertainer", 
                "perms": [
                    "ADMINISTER", 
                    "EDIT_PROFILE", 
                    "CREATE_CONTENT", 
                    "MODERATE_CONTENT", 
                    "CREATE_ADS", 
                    "BASIC_ADMIN"
                ], 
                "name": "Bakchod's of Hostel.", 
                "id": "356188731080152"
            }
        ]
    }

这是数据,我想选择页面的名称如何在 python 中完成?

【问题讨论】:

  • 我相信 python 有一个内置的“json”模块。您可以使用它来检索值。链接到 json 文档 => docs.python.org/2/library/json.html
  • “页面名称”?第几页?预期的输出是多少?是GITM IEEE吗?是Ignitron 2014吗?是列表['GITM IEEE', 'Ignitron 2014', ...]吗?

标签: python json parsing


【解决方案1】:

这段代码应该可以完成工作:

import json

json_file = open('your_json_file_path')
json_dict = json.load(json_file)

site_names = []

for page in json_dict.get('data', []):
    if page.get('name'):
        site_names.append(page['name'])

print site_names

输出:

[u'GITM IEEE', u'Ignitron 2014', u'GITM Model United Nations (GITM MUN)', u'Bros
!s', u'6 Strings', u'Counter Strike::74th Cavalry', u"Bakchod's of Hostel."]

【讨论】:

    【解决方案2】:

    遍历json_data["data"] 中的字典列表并使用密钥访问您需要的任何内容。

    print([dic["name"] for dic in json_data["data"]])
    ['GITM IEEE', 'Ignitron 2014', 'GITM Model United Nations (GITM MUN)', 'Bros!s', '6 Strings', 'Counter Strike::74th Cavalry', "Bakchod's of Hostel."]
    

    如果有可能name 不在每个字典中,请使用in 进行检查:

    print([dic["name"] for dic in d["data"] if "name" in dic])
    

    【讨论】:

    • 非常感谢您解决了我的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-09
    • 2023-03-21
    • 2022-10-02
    • 2015-05-01
    • 2018-02-28
    • 1970-01-01
    相关资源
    最近更新 更多