파이썬 문법/파이썬 기초 문법

파이썬 문제 풀이로 기초 문법 빠르게 이해하고 활용하기 - 11.파일 읽기 쓰기(답안)

파기차차 2022. 12. 4. 07:23
728x90
반응형
SMALL
728x90
반응형

O 모범 답안

# 11. 파일 읽기, 쓰기


# 1) 아래 파일을 읽고 출력하는 명령을 실행해 보세요.
# test.json
# {"K5": {"price": "5000", "year": "2022"}, "Avante": {"price":"3000", "year":"2021"}}

import json
with open('test.json', 'r') as f:
    json_data = json.load(f)

print(json.dumps(json_data))
{"K5": {"price": "5000", "year": "2022"}, "Avante": {"price": "3000", "year": "2021"}}

print(json_data)
{'K5': {'price': '5000', 'year': '2022'}, 'Avante': {'price': '3000', 'year': '2021'}}



# 2) 위에 파일 내용 중에서 K5의 price를 6000으로 변경하는 명령을 실행하고 출력해 보세요.
# 값 변경
json_data['K5']['price'] = '6000'
print(json_data['K5']['price'])

6000



# 3) 아래 결과와 같이 K8의 키/밸류를 추가해 보세요.
{"K5": {"price": "6000", "year": "2022"}, "Avante": {"price":"3000", "year":"2021"},
'K8': {'price': '9000', 'year': '2022'}}

# 키/밸류 추가
json_data['K8'] = {}
json_data['K8']['price'] = "9000"
json_data['K8']['year'] = '2022'
print(json_data)

{'K5': {'price': '6000', 'year': '2022'}, 'Avante': {'price': '3000', 'year': '2021'}, 'K8': {'price': '9000', 'year': '2022'}}


# 4) test.json 파일에 들여쓰기(indent)를 탭(\t)으로 변경 후 출력해 보세요.
with open('test.json', 'w', encoding='utf-8') as f:
    json.dump(json_data, f, indent="\t")
f.close()


with open('test.json', 'r') as f:
    json_data = json.load(f)

print(json_data)
{'K5': {'price': '6000', 'year': '2022'}, 'Avante': {'price': '3000', 'year': '2021'}, 'K8': {'price': '9000', 'year': '2022'}}

print(json.dumps(json_data, indent="\t"))
{
        "K5": {
                "price": "6000",
                "year": "2022"
        },
        "Avante": {
                "price": "3000",
                "year": "2021"
        },
        "K8": {
                "price": "9000",
                "year": "2022"
        }
}




# 5) 딕셔너리를 이용하여 아래와 같이 출력되도록 명령을 실행해 보세요.
{"K5": {"price": "5000", "year": "2015"}, "Avante": {"price":"3000", "year":"2014"}}


# 딕셔너리를 만들고, json파일로 저장

car_group = dict()


k5 = dict()
k5["price"] = "5000"
k5["year"] = "2015"
car_group["k5"] = k5
print(k5)
{'price': '5000', 'year': '2015'}


print(car_group)
{'k5': {'price': '5000', 'year': '2015'}}




avante = dict()
avante["price"] = "3000"
avante["year"] = "2014"
car_group["Avante"] = avante
print(avante)
{'price': '3000', 'year': '2014'}


print(car_group)
{'k5': {'price': '5000', 'year': '2015'}, 'Avante': {'price': '3000', 'year': '2014'}}


# 6) 위에서 만든 딕셔너리를 test2.json 파일에 저장 및 출력하는 명령을 작성해 보세요.
with open('test2.json', 'w', encoding='utf-8') as f:
    json.dump(car_group, f, indent="\t")
f.close()

with open('test2.json', 'r') as f:
    json_data = json.load(f)

print(json_data)
{'k5': {'price': '5000', 'year': '2015'}, 'Avante': {'price': '3000', 'year': '2014'}}

print(json.dumps(json_data, indent="\n"))
{

"k5": {


"price": "5000",


"year": "2015"

},

"Avante": {


"price": "3000",


"year": "2014"

}
}


# 7) 아래 결과와 같이 딕셔너리에 k5의 값을 변경, k8 키/벨류를 추가하고 이를 다시 파일에 쓰기로 저장하는 명령을 작성해 보세요.
{"K5": {"price": "7000", "year": "2015"}, "Avante": {"price":"3000", "year":"2014"},
'K8': {'price': '9000', 'year': '2019'}}

# 딕셔너리를 만들고, json파일로 저장2
json_data['k5']['price'] = "7000"
print(json_data['k5']['price'])

7000



json_data['k8'] = dict() # 딕셔너리의 키 설정
json_data['k8']['price'] = "9000"
json_data['k8']['year'] = "2019"
print(json_data)

{'k5': {'price': '7000', 'year': '2015'}, 'Avante': {'price': '3000', 'year': '2014'}, 'k8': {'price': '9000', 'year': '2019'}}



with open('test2.json', 'w', encoding='utf-8') as f:
    ff = json.dumps(json_data, indent="\t", ensure_ascii=False)
    f.write(ff)
f.close()

with open('test2.json', 'r') as f:
    json_data = json.load(f)

print(json_data)
{'k5': {'price': '7000', 'year': '2015'}, 'Avante': {'price': '3000', 'year': '2014'}, 'k8': {'price': '9000', 'year': '2019'}}

print(json.dumps(json_data, indent="\t"))
{
        "k5": {
                "price": "7000",
                "year": "2015"
        },
        "Avante": {
                "price": "3000",
                "year": "2014"
        },
        "k8": {
                "price": "9000",
                "year": "2019"
        }
}

 

 
728x90
반응형
LIST