Невозможно добавить строки из файла JSON в список

#python #arrays #json #string

#python #массивы #json #строка

Вопрос:

У меня есть data_request.json файл 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']
 

Ответ №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]