소프트웨어융합/파이썬 기타.py

파이썬 복습 + json xml, yaml,

류지나 2021. 8. 31. 09:07

0830수업 중 실습

 

사전 key value 뒤집은 값도 저장

english_dict = dict()
english_dict['one']='하나'
english_dict['two']='둘'
english_dict['three']='셋'
korean_dict = {v:k for k,v in english_dict.items()}
word = input("단어를 입력하시오:")
if word in english_dict:
    print(english_dict[word])
elif word in korean_dict:
    print(korean_dict[word])
else:
    print('없음')

 

 

연락처 만들기 - dict의 key를 rename하는, choice4주목

friends = []
select = 0
while select != 9:
    print("----------")
    print("1. 친구 리스트 출력\n2. 친구추가\n3. 친구삭제\n4. 이름변경\n9. 종료")
    
    choice = int(input("메뉴를 선택하시오 : "))
    if choice == 1:
        print(friends)
    
    elif choice == 2:
        name = input("이름을 입력하시오 : ")
        friends.append(name)
   
    elif choice == 3:
        name = input("삭제할 이름을 입력하시오 : ")
        if name in friends:
            friends.remove(name)
        else: print("해당 이름은 없습니다.")
    
    elif choice == 4:
        name = input("변경하고 싶은 이름을 입력하시오 : ")
        if name in friends:
            new_name = input("새로운 이름을 입력하세요 : ")
            friends[friends.index(name)]= new_name  
        else: print("해당 이름은 없습니다.")

 

파이썬으로 json파일 생성 

import json 
car_group = dict()

k5 = dict()
k5["price"] = "5000"
k5["year"] = "2015"
car_group["K5"] = k5

avante = dict()
avante["price"] = "3000"
avante["year"] = "2014"
car_group["Avante"] = avante

#json 파일로 저장
with open('C://users/playdata/test2.json', 'w', encoding='utf-8') as make_file:
    json.dump(car_group, make_file, indent="\t")

# 저장한 파일 출력하기
with open('C://users/playdata/test2.json', 'r') as f:
    json_data = json.load(f)

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

 


json - dict 저장

 

import json
car_group = dict()


k5 = dict()
k5["price"] = "5000"
k5["year"] = "2015"
car_group["K5"] = k5


avante = dict()
avante["price"] = "3000"
avante["year"] = "2014"
car_group["Avante"] = avante



#json 파일로 저장
with open('C:\\test.json', 'w', encoding='utf-8') as make_file:
    json.dump(car_group, make_file, indent="\t")
	

# 저장한 파일 출력하기
with open('C:\\test.json', 'r') as f:
    json_data = json.load(f)
print(json.dumps(json_data, indent="\t") )
출력문 :
{
	"K5": {
		"price": "5000",
		"year": "2015"
	},

	"Avante": {
		"price": "3000",
		"year": "2014"
	}
}

 

 

 

연락처 - dict - json 연결해서 재 풀이하기

friends_dic = {}
option = ''
prompt = '-' * 15 + '\n' \
    + '1. 친구 리스트 출력\n' \
    + '2. 친구추가\n' \
    + '3. 친구삭제\n' \
    + '4. 이름변경\n' \
    + '5. 저장\n' \
    + '6. 불러오기\n' \
    + '9. 종료\n' \
    + '메뉴를 선택하시오: '
while( option != '9' ):
    option = input(prompt)
    if option.isdigit() :
        option_n = int(option)
        if option_n == 1:
            print(friends_dic)
        elif option_n == 2:
            name = input('이름을 입력하시오: ')
            phone = input('전화번호를 입력하시오: ')
            friends_dic[name] = phone
        elif option_n == 3:
            name = input('삭제할 이름: ')
            if name in friends_dic.keys():
                friends_dic.pop(name)
            else:
                print('이름을 찾을 수 없어요.')
        elif option_n == 4:
            name_old = input('어느 친구의 이름을 변경하시겠습니까? ')
            if name_old in friends_dic.keys():
                friends_dic.pop(name_old)
                name_new = input('새로운 이름을 입력해주세요: ')
                friends_dic[name_new]= phone
            else:
                print('이름을 찾을 수 없어요.')
        elif option_n == 5:
            with open('friends_phonenumbers.json','w',encoding='utf-8') as make_file:
                json.dump(friends_dic,make_file,indent='\t')
            print('저장이 완료되었습니다')
        elif option_n == 6:
            filename = input('파일이름: ')
            try:
                with open(filename, 'r') as f:
                    friends_dic = json.load(f)
                    print('저장이 완료되었습니다')
            except:
                print('파일이 존재하지 않습니다.')
        elif option_n == 9:
            break
        else:
            print('다시 알맞은 옵션을 골라주세요')
    else:
        print('다시 알맞은 옵션을 골라주세요')

 

 

 

 

 






test.json

 

<?xml version ="1.0"?>
<data>
<student>
    <name>peter</name>
    <age>24</age>
    <score math = "80" englsih="97"/>
</student>
<student>
    <name>elgar</name>
    <age>21</age>
    <score math="67" english="56"/>
</student>
<student>
    <name>hong</name>
    <age>36</age>
    <score math="76" english="81"/>
</student>
</data>

json

from xml.etree.ElementTree import parse
tree=parse('test.xml')
root = tree.getroot()

student = root.findall("student")
name = [x.findtext("name") for x in student]
age = [x.finatext("age") for x in student]
score = [x.find("score").attrib for x in student]

print(name)
print(age)
print(score)

vegetables.yml

Vegetables:
	- pepper
	- tomato
	- garlic
pip install pyyaml


import yaml

with open('c:/users/playdata/vegetables.yml') as f:
    vegetables = yaml.load(f, Loader=yaml, FullLoader)
    print(vegetables)

k8s_deployment_yaml.yml

apiVersion: app/v1
kind: Deployment
metadata:
	name: frontend
	labels:
		app: mywebsite
		tier: frontend
spec:
	replicas: 3
	template:
		metadata:
			name: myapp-pod
			labels:
				app: myapp
		spec:
			containers:
				- name: ngnix
				image: ngnix
	selector:
		matchLabels:
			app: myapp
			app: myapp
with open('cars.yml') as f:
	cars_orifianl = yaml.load(f, Loader=yaml.FullLoader)
	print(cars_origianl)
	print("--------------------------------")
	cars_sorted = yaml.dump(cars_origianl, sort_keys = True)
	print(cars_sorted)

----------------------------------

with open('cars.yml') as f:
	cars_original = yaml.load(f, Loader=yaml.FulllLoader)
	print(cars_original)
	print("---------------------------------")
	for key, value in sorted(cars_original.items(), key=lambda item: item[1]):
		print(key,':',value)


----------------------------------