[
{
"option": "인덕션"
},
{
"option": "오븐"
}
]
import json
import os
with open("options.json", "r", encoding="UTF-8") as json_data:
options = json.load(json_data)
option_list = []
for a in options:
option_data = {"model": "houses.Option", "fields": {"name": a["option"]}}
option_list.append(option_data)
with open("option_list.json", "w", encoding="utf-8") as m:
json.dump(option_list, m, ensure_ascii=False, indent=2)
import json
같은 경로에있는 json파일을 불러온다
import os
os 라이브러리 불러온다
with open("options.json","r", encoding = "UTF-8") as json_data : options = json.load(json_data)
options라는 이름의 json데이터파일을 읽기모드로 열고, json데이터를 load한다
option_list = []
빈 리스트를 생성한다.
for a in options:
for 문으로 위에서 정의한 options를 하나씩 들어간다
option_data = option_data = {"model": "houses.Option", "fields": {"name": a["option"]}}
모델은 houses.Option의 만들어진 데이터 필드에 넣어주고, 필드에 리스트에서 option이란 키의 값을 데이터로 넣어준다.
option_list.append(option_data)
option_list라는 배열에 option_data 를 넣어준다.
with open("option_list.json", "w", encoding="utf-8") as m : json.dump(option_list, m, ensure_ascii=False, indent=2)
open한 json파일을 json.dump를 통해 load() 함수는 읽은 데이터를 딕셔너리 자료형으로 반환.
[
{
"code": 1111051500,
"sido": "서울특별시",
"gu": "종로구",
"dong": "청운효자동",
"lat": 37.584009,
"lng": 126.970626
},
{
"code": 1111053000,
"sido": "서울특별시",
"gu": "종로구",
"dong": "사직동",
"lat": 37.575408,
"lng": 126.965944
},
]
import json
with open("dong.json", "r", encoding="UTF-8") as json_data:
houses = json.load(json_data)
gu_list = []
dong_list = []
for dong in houses:
flag = True
gu_data = {"model": "houses.gu_list"}
gu_data["fields"] = {"name": dong["gu"]}
if gu_list:
if dong["gu"] in [i["fields"]["name"] for i in gu_list]:
flag = False
gu_data["pk"] = len(gu_list) + 1
if flag:
gu_list.append(gu_data)
dong_data = {"model": "houses.dong_list"}
pk = [i["pk"] for i in gu_list if i["fields"]["name"] == dong["gu"]][0]
dong_data["fields"] = {"gu": pk, "name": dong["dong"]}
dong_data["pk"] = len(dong_list) + 1
dong_list.append(dong_data)
with open("gu_list.json", "w", encoding="UTF-8") as m:
json.dump(gu_list, m, ensure_ascii=False, indent=2)
with open("dong_list.json", "w", encoding="UTF-8") as m:
json.dump(dong_list, m, ensure_ascii=False, indent=2)
default_data = dong_list + gu_list
with open("default_data.json", "w", encoding="UTF-8") as m:
json.dump(default_data, m, ensure_ascii=False, indent=2)
import json
같은 경로에있는 json파일을 불러온다
with open("dong.json", "r", encoding="UTF-8") as json_data:
파일열기모드 : 파일열기모드란 파일을 Binary형태로 읽을지 아니면 인코딩단위로 읽을지, 파일을 읽을건지 쓸건지 아니면 동시에 할건지에 대한 부분을 정하것
+ r : 읽기 모드, 파일을 읽을 때 사용.
+ w : 쓰기 모드, 파일에 쓸 때 사용하며 파일이 이미 동일한 이름으로 존재한다면 덮어씀
+ a : 추가 모드, 존재하는 파일에 추가할 때 사용하며 파일이 없다면 생성
as json_data
json_data라는 이름으로 저장한다.
houses = json.load(json_data)
houses 변수안에 json데이터를 파이썬이 읽을수 있는 파이썬 딕셔너리 객체로 변환해준다.
gu_list = [] dong_list = []
구와 동 각각 빈 리스트를 만든다
for dong in houses:
for 문으로 houses라는 json데이터를 하나씩 확인한다.
flag = True
gu에 있는 dong이 똑같은게 발생하면 false로 바꿔주어 중복을 방지시키는 장치
gu_data = {"model": "houses.gu_list"}
gu_data라는 변수에 "models"라는 키에 "houses.gu_list" 값을 value로 주는 객체를 만든다.
gu_data["fields"] = {"name": dong["gu"]}
gu_data에 field를 "name"을 dong이라는 객체에서 gu라는 키값을 가진 값들을 찾아 넣어준 객체를 넣어준다.
if gu_list
만약 gu_list가 존재한다면, 만약 동의 구가
if flag : gu_list.append(gu_data)
만약 flag가 true라면 gu_list 에 추가해라
with open("gu_list.json", "w", encoding="UTF-8") as m: json.dump(gu_list, m, ensure_ascii=False, indent=2)