💡 JSON은 (용량을 줄이기 위한 장점을 가진) data 교환 형식이다.
💡 JSON은 쉽게 객체(Object)로 바꿔주거나 객체(Object)를 JSON으로 바꿔주는 Library가 대부분 언어에서 존재한다.
💡 { String key : String Value}
{
"firstName": "cha",
"lastName": "suyeon",
"email": "suyeon@gmail.com",
"hobby": ["yoga","dancing"]
}
train_meta = []
for j in train_jsons:
json_obj = json.load(open(j))
# json_obj['features']
for f in json_obj['features']:
# geometry
geo_coord = f['geometry']['coordinates']
geo_type = f['geometry']['type']
# properties
object_imcoords = f['properties']['object_imcoords']
object_angle = f['properties']['object_angle']
building_imcoords = f['properties']['building_imcoords']
road_imcoords = f['properties']['road_imcoords']
image_id = f['properties']['image_id'] # 영상 ID
ingest_time = f['properties']['ingest_time'] # 영상 생성 시간
type_id = f['properties']['type_id'] # 정수 (1~N), 클래스 id
type_name = f['properties']['type_name'] # 클래스 이름
# add to list
train_meta.append([image_id, type_id, type_name, geo_coord, geo_type, object_angle,
object_imcoords, building_imcoords, road_imcoords, ingest_time])
# Make dataframe
df_train = pd.DataFrame(train_meta,
columns = ['image_id','type_id','type_name','geo_coord','geo_type','object_angle',
'object_imcoords','building_imcoords','road_imcoords','ingest_time'])
왜냐하면 json 파일은
{"features": [{"geometry": {"coordinates": [[130.9623813425, 33.877856147, 0.0], [130.9684677235, 33.8777590378, 0.0], [130.9685843442, 33.8828355853, 0.0], [130.9624976031, 33.882932713, 0.0]], "type": "Polygon"}, "properties": {"object_imcoords": "577.5335936447841,644.9753585661617,426.2586173885984,412.9800659741642,497.070506704797,366.8064270382977,648.3454829609827,598.8017196302953", "object_angle": 2.1486187195514876, "building_imcoords": "EMPTY", "road_imcoords": "EMPTY", "image_id": "OBJ07450_PS3_K3A_NIA0834.png", "ingest_time": "2020-11-04T06:53:36.815709Z", "type_id": "12", "type_name": "dam"}, "type": "Feature"}], "type": "FeatureCollection"}
이렇게 생겼고, 처음보면(계속 봐도) 잘 안 읽힌다.
크게는
{"feature" : [ ],
"type": "FeatureCollection"}
이런 형태이고 저 feature
라는 리스트 안에
- feature ("type": "FeatureCollection")
- geometry ("type": "Polygon")
- coordinates
- properties ("type": "Feature")
- object_imcoords
- object_angle
- building_imcoords
- road_imcoords
- image_id
- ingest_time
- type_id
- type_name
이런 형식을 이루고 있다.
💡 JSON 형식은 Javascript 객체와 마찬가지로 key / value가 존재할 수 있으며 key값이나 문자열은 항상 " "를 이용하여 표기한다.
만약 이렇게 생긴 JSON 파일이 있다면
이런식으로 읽어주는 뷰어 사이트가 있습니다.
👉 링크
또한, json.dump()
, json.dumps()
의 기능이 있습니다.
이것들은 json을 더 한결 보기 편하게 읽어줍니다.(왜 갑자기 번역투가 나오지)
import json
후에 사용하면 되고, 저도 더 공부한 다음에 정리하여 글을 올려보도록 하겠습니다!
Here, you can get Nintendo Switch Roms for free. We have direct download links without ads https://krnl.vip/nintendo-switch-roms/
https://krnl.vip/download-super-mario-bros-wonder-nsp-xci-rom-1/
SportsFire APK https://sportsfire.org/ stands out as a premier live broadcast app for global sports enthusiasts. Offering a diverse array of games—from football and basketball to table tennis and more—it's the ultimate choice for fans seeking coverage of the world's most crucial sporting events.