Сбор информации по json импорт в csv

Есть такого рода json

{
    "version": 2,
    "states": {
        "A область": {
            "enabled": false,
            "type:": "state",
            "districts": {
                "A район": {
                    "enabled": false,
                    "type": "district",
                    "enabled_at": null,
                    "disabled_at": null
                },
                "B район": {
                    "enabled": false,
                    "type": "district",
                    "enabled_at": null,
                    "disabled_at": null
                },
                "C район": {
                    "enabled": false,
                    "type": "district",
                    "enabled_at": null,
                    "disabled_at": null
                },
                
            },
            "enabled_at": null,
            "disabled_at": "2022-03-27T19:56:37+00:00"
        },
        "B область": {
            "enabled": false,
            "type:": "state",
            "districts": {
                "A район": {
                    "enabled": false,
                    "type": "district",
                    "enabled_at": null,
                    "disabled_at": null
                },
                "B район": {
                    "enabled": false,
                    "type": "district",
                    "enabled_at": null,
                    "disabled_at": null
                },
                "C район": {
                    "enabled": false,
                    "type": "district",
                    "enabled_at": null,
                    "disabled_at": null
                },
                
            },
            "enabled_at": null,
            "disabled_at": "2022-03-27T19:56:37+00:00"
        },

нужно пробежаться по файлу и перенести информацию в csv файл

(states,type,districts,enabled,enabled_at,disabled_at)

буду очень признателен если поможете с циклом сбора информации. Спасибо

    with open(path, 'r') as f:
        data = json.loads(f.read())
        print(data["states"])
        States = data["states"]
        States = States.keys()
        for state in States:
            list_states.append(state)
            for i in data["states"]:
                State = i
                for x in data["states"][i]:
                    Alert = x.get("enabled")
                    Type = x.get("type")
                    Enabled_at = x.get("enabled_at")
                    Disabled_at = x.get("disabled_at")
                    list_all_states.append(
                        {
                            "State": State,
                            "Alert": Alert,
                            "Type": Type,
                            "Enabled_at": Enabled_at,
                            "Disabled_at": Disabled_at
                        }
                    )

я пытался сделать след образом, но выдает такого рода ошибку

    Alert = x.get("enabled")
AttributeError: 'str' object has no attribute 'get'

Ответы (1 шт):

Автор решения: CrazyElf
for x in data["states"][i]:

Этот цикл не нужен, он выдаёт ключи словаря, к которым вы там ниже всё-равно вручную обращаетесь. Можно починить так:

x = data["states"][i]

Ну и блок кода, который ниже, нужно будет сдвинуть влево, потому что он теперь не внутри цикла, а просто.

Код, конечно, не эффективный, но вам главное понемногу начать разбираться что и как, потом легче будет.

→ Ссылка