【问题标题】:Cannot append strings from JSON file to a list无法将字符串从 JSON 文件附加到列表
【发布时间】:2021-03-15 12:46:49
【问题描述】:

我有一个 JSON data_request.json 文件:

[
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{project_name}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['host']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{company}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['company']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{from_date}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['between_dates'][0]"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{to_date}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['between_dates'][1]"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{report_created_date}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['current_date']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{sla_overall}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['sla']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{total_tickets}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['total_tickets']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{total_open_problems}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['count_open_issues']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{service1_name}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['report_by_sla']['average']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{service2_name}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['report_by_sla']['test']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{service3_name}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['report_by_sla']['down']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{service_sla_goal}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['report_by_sla']['goal']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{service1_url}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['host']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{service1_url_response_time}}",
                "matchCase": "True"
            },
            "replaceText": "replaced['url_response']"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{service1_url_response_time_goal}}",
                "matchCase": "True"
            },
            "replaceText": "self.url_response_time_goal"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{current_issue_time}}",
                "matchCase": "True"
            },
            "replaceText": "str(datetime.fromtimestamp(try_last_change))"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{current_issue_severity}}",
                "matchCase": "True"
            },
            "replaceText": "await match_priority(try_priority)"
        }
    },
    {
        "replaceAllText": {
            "containsText": {
                "text": "{{current_issue_description}}",
                "matchCase": "True"
            },
            "replaceText": "str(try_description)"
        }
    }
]

Python 代码:

with open("data_request.json", "r") as json_data:
    data = load(json_data)

    empty_list: list = []

    for element in data:
        # Step 1: Got all values from JSON
        all_elements: str = element["replaceAllText"]["replaceText"]
        print(all_elements)

        # Step 2: Trying append to `list()`.
        empty_list.append(all_elements)
        print(empty_list)

第 1 步的标准输出:

replaced['host']
replaced['company']
replaced['between_dates'][0]
replaced['between_dates'][1]
replaced['current_date']
replaced['sla']
replaced['total_tickets']
replaced['count_open_issues']
replaced['report_by_sla']['average']
replaced['report_by_sla']['test']
replaced['report_by_sla']['down']
replaced['report_by_sla']['goal']
replaced['host']
replaced['url_response']
self.url_response_time_goal
str(datetime.fromtimestamp(try_last_change))
await match_priority(try_priority)
str(try_description)

第 2 步的标准输出:

["replaced['host']"]
["replaced['host']", "replaced['company']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']", "replaced['report_by_sla']['goal']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']", "replaced['report_by_sla']['goal']", "replaced['host']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']", "replaced['report_by_sla']['goal']", "replaced['host']", "replaced['url_response']"]
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']", "replaced['report_by_sla']['goal']", "replaced['host']", "replaced['url_response']", 'self.url_response_time_goal']
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']", "replaced['report_by_sla']['goal']", "replaced['host']", "replaced['url_response']", 'self.url_response_time_goal', 'str(datetime.fromtimestamp(try_last_change))']
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']", "replaced['report_by_sla']['goal']", "replaced['host']", "replaced['url_response']", 'self.url_response_time_goal', 'str(datetime.fromtimestamp(try_last_change))', 'await match_priority(try_priority)']
["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']", "replaced['report_by_sla']['goal']", "replaced['host']", "replaced['url_response']", 'self.url_response_time_goal', 'str(datetime.fromtimestamp(try_last_change))', 'await match_priority(try_priority)', 'str(try_description)']

如何获取所有值并将它们添加到数组中?我的意思是只获取最后一个值:

["replaced['host']", "replaced['company']", "replaced['between_dates'][0]", "replaced['between_dates'][1]", "replaced['current_date']", "replaced['sla']", "replaced['total_tickets']", "replaced['count_open_issues']", "replaced['report_by_sla']['average']", "replaced['report_by_sla']['test']", "replaced['report_by_sla']['down']", "replaced['report_by_sla']['goal']", "replaced['host']", "replaced['url_response']", 'self.url_response_time_goal', 'str(datetime.fromtimestamp(try_last_change))', 'await match_priority(try_priority)', 'str(try_description)']

当我访问第一个索引时,我得到以下信息:

print(empty_list[0])

replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']
replaced['host']

【问题讨论】:

    标签: python arrays json string


    【解决方案1】:
    import json
    with open("data_request.txt", "r") as json_data:
        data = json.load(json_data)
        all_replace_text = [item["replaceAllText"]["replaceText"] for item in data]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-15
      • 2012-12-05
      • 2012-09-14
      • 2014-11-18
      • 2018-09-13
      • 2012-07-12
      • 2014-07-05
      • 2018-07-16
      相关资源
      最近更新 更多