Сглаживание многоуровневого JSON

У меня есть такая строка JSON:

      [
  {
    "numberOfStores": 1,
    "storeList": [
      {
        "country": "US",
        "zipCode": "19702-3221",
        "city": "NEWARK",
        "displayName": "001",
        "state": "DE",
        "identifier": "001",
        "locationName": "Newark Mall",
        "manager": "TOM JERRY",
        "address1": "900 XYZ AVE",
        "active": 1,
        "phone": "(302) 111-2222",
        "openDate": {
          "date": 1,
          "hours": null,
          "seconds": null,
          "month": 9,
          "timezoneOffset": 420,
          "year": 98,
          "minutes": null,
          "time": 907225200000,
          "day": 4
        }
      }
    ],
    "stateCode": "DE",
    "state": "Delaware"
  },
  {
    "numberOfStores": 1,
    "storeList": [
      {
        "country": "US",
        "zipCode": "20018-3840",
        "city": "WASHINGTON",
        "displayName": "002",
        "state": "DC",
        "identifier": "002",
        "locationName": "Washington DC",
        "manager": "MICKEY MOUSE",
        "address1": "1600 ABCD ST NE",
        "active": 1,
        "phone": "(202) 111-2222",
        "openDate": {
          "date": 29,
          "hours": null,
          "seconds": null,
          "month": 10,
          "timezoneOffset": 480,
          "year": 112,
          "minutes": null,
          "time": 1354176000000,
          "day": 4
        }
      }
    ],
    "stateCode": "DC",
    "state": "District of Columbia"
  },

{"numberOfStores": 2, "storeList": [{"country": "US","zipCode": "73114","city": "OKLAHOMA CITY», «displayName»: «003», «state»: «ОК», «идентификатор»: «003», «locationName»: «Оклахома-Сити», «менеджер»: «ТОМ ТОМ», «адрес1»: «13200 MNO AVE», «активный»: 1, «телефон»: «(405) 111-2222», «openDate»: {«дата»: 16, «часы»: ноль, «секунды»: ноль, «месяц»: 4, «timezoneOffset»: 420, «год»: 119, "minutes": null,"time": 1557990000000,"day": 4}},{"country": "US","zipCode": "74133-7179","город": "ТУЛСА", "displayName": "004", "состояние": "ОК", "идентификатор": "004", "locationName": "Талса", "менеджер": "СМИТ СМИТ", " address1 ":" 800 S MEMORIAL DR "," active ": 1," phone ":" (918) 111-2222 "," openDate": {" date ": 21," hours": null," seconds": null, «месяц»: 3, «timezoneOffset»: 420, «год»: 116, «минуты»: null, «время»: 1461222000000, «день»: 4}}], «stateCode»: «ОК», « state ":" Оклахома "}]004 »,« locationName »:« Талса »,« manager »:« SMITH SMITH »,« address1 »:« 800 S MEMORIAL DR »,« active »: 1,« phone »:« (918) 111-2222 », «openDate»: {«дата»: 21, «часы»: ноль, «секунды»: ноль, «месяц»: 3, «timezoneOffset»: 420, «год»: 116, «минуты»: ноль, «время» : 1461222000000, "день": 4}}], "stateCode": "ОК", "состояние": "Оклахома"}]004 »,« locationName »:« Талса »,« manager »:« SMITH SMITH »,« address1 »:« 800 S MEMORIAL DR »,« active »: 1,« phone »:« (918) 111-2222 », «openDate»: {«дата»: 21, «часы»: ноль, «секунды»: ноль, «месяц»: 3, «timezoneOffset»: 420, «год»: 116, «минуты»: ноль, «время» : 1461222000000, "день": 4}}], "stateCode": "ОК", "состояние": "Оклахома"}]"seconds": null, "month": 3, "timezoneOffset": 420, "year": 116, "minutes": null, "time": 1461222000000, "day": 4}}], "stateCode": " ОК "," штат ":" Оклахома "}]"seconds": null, "month": 3, "timezoneOffset": 420, "year": 116, "minutes": null, "time": 1461222000000, "day": 4}}], "stateCode": " ОК "," штат ":" Оклахома "}]

Пытаюсь сгладить его, следуя примерам, которые я нашел на этом сайте и в других подобных местах.

       x = json.loads(stringX)
 df3 = json_normalize(x)
 pprint (df3)

Но JSON для и openDate остается несглаженным, независимо от того, что я пробовал вот так (строки усечены):

         numberOfStores  storeList                                               stateCode           state
0               1  [{'country': 'US', 'zipCode': '19702-3221', 'c...        DE              Delaware
1               1  [{'country': 'US', 'zipCode': '20018-3840', 'c...        DC  District of Columbia

В схеме JSON выше - storeList может иметь несколько магазинов.

Результат, который я пытаюсь получить, будет иметь по одной строке для каждого хранилища в каждом состоянии; например, два хранилища в состоянии означают две строки вывода для этого состояния. Государство - это самый внешний группирующий фактор.

Как это сделать?

Желаемый результат выглядит так:

      +---+----------------+---------+--------------+---------------+--------------+-------+------------+---------------+--------------+-------------------+--------+----------------+------------------+----------------+-------------------------+---------------+---------------+------------------+---------------+--------------+-----------+----------------------+
|   | numberOfStores | country | zipCode      | city          | displayName  | state | identifier | locationName  | manager      | address1          | active | phone          | openDate.seconds | openDate.month | openDate.timezoneOffset | openDate.year | openDate.date | openDate.minutes | openDate.time | openDate.day | stateCode | state                |
+---+----------------+---------+--------------+---------------+--------------+-------+------------+---------------+--------------+-------------------+--------+----------------+------------------+----------------+-------------------------+---------------+---------------+------------------+---------------+--------------+-----------+----------------------+
| 0 | 1              | US      | 19702-3221   | NEWARK        | 001          | DE    | 001        | Newark Mall   | TOM JERRY    | 900 XYZ AVE       | 1      | (302)-111-2222 | None             | 9              | 420                     | 98            | 1             | None             | 907225200000  | 4            | DE        | Delaware             |
+---+----------------+---------+--------------+---------------+--------------+-------+------------+---------------+--------------+-------------------+--------+----------------+------------------+----------------+-------------------------+---------------+---------------+------------------+---------------+--------------+-----------+----------------------+
| 1 | 1              | US      | 20018-3840   | WASHINGTON    | 002          | DC    | 002        | Washington DC | MICKEY MOUSE | 1600 ABCD ST NE   | 1      | (202)-111-2222 | None             | 10             | 480                     | 112           | 29            | None             | 1354176000000 | 4            | DC        | District of Columbia |
+---+----------------+---------+--------------+---------------+--------------+-------+------------+---------------+--------------+-------------------+--------+----------------+------------------+----------------+-------------------------+---------------+---------------+------------------+---------------+--------------+-----------+----------------------+
| 2 | 2              | US      | 73114        | OKLAHOMA CITY | 003          | OK    | 003        | Oklahoma City | TOM TOM      | 13200 MNO AVE     | 1      | (405)-111-2222 | None             | 4              | 420                     | 119           | 16            | None             | 1557990000000 | 4            | OK        | Oklahoma             |
+---+----------------+---------+--------------+---------------+--------------+-------+------------+---------------+--------------+-------------------+--------+----------------+------------------+----------------+-------------------------+---------------+---------------+------------------+---------------+--------------+-----------+----------------------+
| 3 | 2              | US      | 74133-7179   | TULSA         | 004          | OK    | 004        | Tulsa         | SMITH SMITH  | 800 S MEMORIAL DR | 1      | (918)-111-2222 | None             | 3              | 420                     | 116           | 21            | None             | 1461222000000 | 4            | OK        | Oklahoma             |
+---+----------------+---------+--------------+---------------+--------------+-------+------------+---------------+--------------+-------------------+--------+----------------+------------------+----------------+-------------------------+---------------+---------------+------------------+---------------+--------------+-----------+----------------------+

0 ответов

Другие вопросы по тегам