[TIL]JSON.dump(dict~,)사용시 dict 순서대로 넣어주기(순서 고정)

차보경·2022년 12월 19일
0

TIL

목록 보기
20/37
post-thumbnail

Dictionary객체 생성 후 JSON파일로 만들기 위해서 dump() or dumps()를 사용하게 된다.

이때 대부분의 경우 dictionary가 순서가 있다면 순서대로 JSON화 되지만, 최근 진행한 파일에서는 뒤죽박죽으로 들어가서 이를 해결했다.

1. dumps(a, b, sort_keys=True) 사용하기

json.dumps의 파라미터 중 하나인 sort_keys옵션을 사용하여 순서를 정렬함

  • 하지만 이 경우, 순서가 여러개라면 어떤 것을 기준으로 삼을지 파이썬이 헷갈리게 되어 원하는 대로 저장되지 않을 수 있다.

2. collections.OrderedDict() 사용하기

OrderedDict()는 이름에서 나와있듯이 정렬한다기보단, 순서를 고정한다.

import collections # collections을 import해줘야함

index_json = collections.OrderedDict()
# for문으로 index_json의 값이 쌓이게 만들면 그 순서대로 저장된다
index_json["index"] = {"_index" : "extract_word", "_type" : "keyword", "_id" : f"{j}"} 

with open('word_1.json', 'a', encoding = "utf-8") as make_file:
        json.dump(index_json, make_file, indent = '    ')

이런 식으로 사용해서 순서대로 정리된 JSON을 얻었다

profile
차보의 Data Engineer 도전기♥ (근데 기록을 곁들인)

0개의 댓글