Normalization failing with "'list' object has no attribute 'get'"

I am currently developing a new custom connector for LearnWorlds.

Everything is working fine for raw data, but I noticed that in tables with array types in fields, I get the error

"‘list’ object has no attribute ‘get’

I understand this is probably due to using .get method in a list, which does not support it. Is there any workaround for this issue?

Here are the full logs.
logs-45.txt (152.7 KB)

Also, here is the schema being declared

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "required": ["id", "title", "products", "image", "description", "access", "created", "modified", "afterPurchase", "price", "paymentPlans"],
    "properties": {
      "id": {
        "type": "string"
      },
      "title": {
        "type": "string"
      },
      "products": {
        "type": "object",
        "properties": {
          "courses": {
            "type": "array",
            "items": [
              {
                "type": "string"
              }
            ]
          }
        }
      },
      "image": {
        "type": ["string", "null"]
      },
      "description": {
        "type": ["string", "null"]
      },
      "access": {
        "type": "string"
      },
      "created": {
        "type": "number"
      },
      "modified": {
        "type": "number"
      },
      "afterPurchase": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "settings": {
            "type": "object",
            "properties": {
              "url": {
                "type": ["string", "null"]
              },
              "page": {
                "type": ["string", "null"]
              }
            }
          }
        }
      },
      "price": {
        "type": "integer"
      },
      "paymentPlans": {
        "type": "array",
        "items": [
          {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "description": {
                "type": ["string", "null"]
              },
              "type": {
                "type": "string"
              },
              "order": {
                "type": "integer"
              },
              "firstAmount": {
                "type": "integer"
              },
              "amount": {
                "type": "integer"
              },
              "paymentsCount": {
                "type": "integer"
              },
              "subscriptionTrialType": {
                "type": "string"
              },
              "subscriptionIntervalType": {
                "type": "string"
              },
              "status": {
                "type": "string"
              },
              "isCancelable": {
                "type": "boolean"
              },
              "validFrom": {
                "type": ["string", "null"]
              },
              "validTo": {
                "type": ["string", "null"]
              },
              "subscriptionTrialDays": {
                "type": ["string", "null"]
              },
              "subscriptionTrialDate": {
                "type": ["string", "null"]
              },
              "nameOverride": {
                "type": "boolean"
              },
              "paymentPlanNameOverride": {
                "type": ["string", "null"]
              },
              "id": {
                "type": "string"
              }
            }
          }
        ]
      }
    }
  }

The items property must be an object not an array

The `items` property must be an object not an array
```json

"products": {
        "type": "object",
        "properties": {
          "courses": {
            "type": "array",
            "items": {
                "type": "string"
              }
          }
        }
      },

Try to take a look in other connectors implementations too

1 Like