평면화 된 데이터를 구조화 된 JSON으로 변환하는 방법은 무엇입니까?

wzjahucm

이것은 기본 플랫 요소, 일명 입력 데이터입니다.

['a-ab-aba-abaa-abaaa', 'a-ab-aba-abab', 'a-ac-aca-acaa', 'a-ac-aca-acab']

이것은 내가 필요한 대상 데이터, 일명 출력 데이터입니다.

[
  {
    "title": "a",
    "children": [
      {
        "title": "ab",
        "children": [
          {
            "title": "aba",
            "children": [
              {
                "title": "abaa",
                "children": [
                  {
                    "title": "abaaa"
                  }
                ]
              },
              {
                "title": "abab"
              }
            ]
          }
        ]
      },
      {
        "title": "ac",
        "children": [
          {
            "title": "aca",
            "children": [
              {
                "title": "acaa"
              },
              {
                "title": "acab"
              }
            ]
          }
        ]
      }
    ]
  }
]

나는이 json 데이터를 생성하기 위해 deep-for-loop 반복을 사용할 수 있다고 생각했지만 레벨 수가 10보다 클 것이기 때문에 너무 어렵습니다. 그래서 for-loop는이 과정에서 할 수 없다고 생각합니다. 이 목표를 달성하기 위해 패키지 코드를 사용하여 함수를 구현 하시겠습니까? 당신의 마음가짐을 공유 해주셔서 감사합니다. 신의 축복이 있기를!

MennoK

다음은 itertools를 사용하는 재귀 솔루션입니다. 이것이 귀하의 목적에 충분히 효율적인지 모르겠지만 작동합니다. 문자열 목록을 목록 목록으로 변환 한 다음 동일한 첫 번째 키가있는 목록으로 나눈 다음 사전을 빌드하고 첫 번째 키를 제거한 상태에서 반복하는 방식으로 작동합니다.

from itertools import groupby
from pprint import pprint

data = ['a-ab-aba-abaa-abaaa', 'a-ab-aba-abab', 'a-ac-aca-acaa', 'a-ac-aca-acab']
components = [x.split("-") for x in data]

def build_dict(component_list):
    key = lambda x: x[0]
    component_list = sorted(component_list, key=key)
    # divide into lists with the same fist key
    sublists = groupby(component_list, key)
    result = []

    for name, values in sublists:
        value = {}
        value["title"] = name
        value["children"] = build_dict([x[1:] for x in values if x[1:]])
        result.append(value)
    return result

pprint(build_dict(components))

산출:

[{'children': [{'children': [{'children': [{'children': [{'children': [],
                                                          'title': 'abaaa'}],
                                            'title': 'abaa'},
                                           {'children': [], 'title': 'abab'}],
                              'title': 'aba'}],
                'title': 'ab'},
               {'children': [{'children': [{'children': [], 'title': 'acaa'},
                                           {'children': [], 'title': 'acab'}],
                              'title': 'aca'}],
                'title': 'ac'}],
  'title': 'a'}]

이 사전을 json으로 변환하려면 json.dumpsjson 모듈에서 사용할 수 있습니다 . 내 탐험이 명확하기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

조명기에서 구조화 된 데이터를 반환하는 올바른 방법은 무엇입니까?

분류에서Dev

libSodium으로 암호화 된 데이터베이스 열을 검색하는 방법은 무엇입니까?

분류에서Dev

Perl : 구조화 된 방식으로 여러 정규식 캡처를 얻는 방법은 무엇입니까?

분류에서Dev

Elixir : 구조화 된 데이터 요소를 표시하는 방법은 무엇입니까?

분류에서Dev

동일한 열에서 쉼표로 구분 된 변수를 그룹화하는 방법은 무엇입니까?

분류에서Dev

중첩 된 dict를 pandas 데이터 프레임으로 변환하는 방법은 무엇입니까?

분류에서Dev

그룹화 된 데이터를 플로팅하는 방법은 무엇입니까?

분류에서Dev

직렬화 된 익명 개체를 다시 개체로 변환하는 방법은 무엇입니까?

분류에서Dev

세로로 나열된 판매와 유사한 데이터를 Excel에서 더 잘 시각화 된 표로 재구성하는 방법은 무엇입니까?

분류에서Dev

평면화 된 json 데이터를 분류 문자열로 변환하는 방법은 무엇입니까?

분류에서Dev

평탄화 된 JSON에서 가장 깊은 데이터를 추출하는 방법은 무엇입니까?

분류에서Dev

Azure Stream Analytics에서 중첩 된 JSON 데이터를 평면화하는 방법

분류에서Dev

Google 구조화 된 데이터에 대해 ISO 8601에서 totalTime 매개 변수를 사용하는 방법은 무엇입니까?

분류에서Dev

Panda 또는 Spark Dataframe을 사용하여 중첩 된 Excel 데이터를 평면화하는 방법은 무엇입니까?

분류에서Dev

쉼표로 구분 된 매개 변수를 mysql의 행으로 변환하는 방법은 무엇입니까?

분류에서Dev

파이프로 분리 된 데이터를 JSON으로 변환하는 방법은 무엇입니까?

분류에서Dev

mySQL / PHP를 사용하여 데이터베이스에서 구조화 된 정보를 표시하는 방법은 무엇입니까?

분류에서Dev

Haskell에서 매개 변수화 된 유형을 JSON으로 직렬화하는 방법은 무엇입니까?

분류에서Dev

표로 작성된 데이터 구조를 감지하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Spark에서 구조화 된 데이터를 schemaRDD에 매핑하는 방법은 무엇입니까?

분류에서Dev

Common Lisp에서 구조의 평면화 된 배열을 C로 할당하는 방법은 무엇입니까?

분류에서Dev

Firebase에 저장된 데이터로 데이터를 구조화하는 방법

분류에서Dev

중첩 된 json을 r의 데이터 프레임으로 변환하는 방법은 무엇입니까?

분류에서Dev

다른 수의 반환 값을 반환하는 다른 함수로 그룹화 된 데이터를 요약하는 방법은 무엇입니까?

분류에서Dev

MATLAB에서이 코드 조각의 벡터화 된 버전을 구현하는 방법은 무엇입니까?

분류에서Dev

HTTP를 전송으로 사용하여 Avro를 통해 직렬화 된 이진 데이터를 읽는 방법은 무엇입니까?

분류에서Dev

그룹화 된 데이터를 일별로 채우는 방법은 무엇입니까?

분류에서Dev

이 구조화되지 않은 데이터를 구조화로 변환하는 방법은 무엇입니까?

분류에서Dev

직렬화 된 데이터로 구성된 배열을 표시하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    조명기에서 구조화 된 데이터를 반환하는 올바른 방법은 무엇입니까?

  2. 2

    libSodium으로 암호화 된 데이터베이스 열을 검색하는 방법은 무엇입니까?

  3. 3

    Perl : 구조화 된 방식으로 여러 정규식 캡처를 얻는 방법은 무엇입니까?

  4. 4

    Elixir : 구조화 된 데이터 요소를 표시하는 방법은 무엇입니까?

  5. 5

    동일한 열에서 쉼표로 구분 된 변수를 그룹화하는 방법은 무엇입니까?

  6. 6

    중첩 된 dict를 pandas 데이터 프레임으로 변환하는 방법은 무엇입니까?

  7. 7

    그룹화 된 데이터를 플로팅하는 방법은 무엇입니까?

  8. 8

    직렬화 된 익명 개체를 다시 개체로 변환하는 방법은 무엇입니까?

  9. 9

    세로로 나열된 판매와 유사한 데이터를 Excel에서 더 잘 시각화 된 표로 재구성하는 방법은 무엇입니까?

  10. 10

    평면화 된 json 데이터를 분류 문자열로 변환하는 방법은 무엇입니까?

  11. 11

    평탄화 된 JSON에서 가장 깊은 데이터를 추출하는 방법은 무엇입니까?

  12. 12

    Azure Stream Analytics에서 중첩 된 JSON 데이터를 평면화하는 방법

  13. 13

    Google 구조화 된 데이터에 대해 ISO 8601에서 totalTime 매개 변수를 사용하는 방법은 무엇입니까?

  14. 14

    Panda 또는 Spark Dataframe을 사용하여 중첩 된 Excel 데이터를 평면화하는 방법은 무엇입니까?

  15. 15

    쉼표로 구분 된 매개 변수를 mysql의 행으로 변환하는 방법은 무엇입니까?

  16. 16

    파이프로 분리 된 데이터를 JSON으로 변환하는 방법은 무엇입니까?

  17. 17

    mySQL / PHP를 사용하여 데이터베이스에서 구조화 된 정보를 표시하는 방법은 무엇입니까?

  18. 18

    Haskell에서 매개 변수화 된 유형을 JSON으로 직렬화하는 방법은 무엇입니까?

  19. 19

    표로 작성된 데이터 구조를 감지하는 가장 좋은 방법은 무엇입니까?

  20. 20

    Spark에서 구조화 된 데이터를 schemaRDD에 매핑하는 방법은 무엇입니까?

  21. 21

    Common Lisp에서 구조의 평면화 된 배열을 C로 할당하는 방법은 무엇입니까?

  22. 22

    Firebase에 저장된 데이터로 데이터를 구조화하는 방법

  23. 23

    중첩 된 json을 r의 데이터 프레임으로 변환하는 방법은 무엇입니까?

  24. 24

    다른 수의 반환 값을 반환하는 다른 함수로 그룹화 된 데이터를 요약하는 방법은 무엇입니까?

  25. 25

    MATLAB에서이 코드 조각의 벡터화 된 버전을 구현하는 방법은 무엇입니까?

  26. 26

    HTTP를 전송으로 사용하여 Avro를 통해 직렬화 된 이진 데이터를 읽는 방법은 무엇입니까?

  27. 27

    그룹화 된 데이터를 일별로 채우는 방법은 무엇입니까?

  28. 28

    이 구조화되지 않은 데이터를 구조화로 변환하는 방법은 무엇입니까?

  29. 29

    직렬화 된 데이터로 구성된 배열을 표시하는 방법은 무엇입니까?

뜨겁다태그

보관