반응형
제이슨 파일을 만든다. dictionary라는 큰 array 내에 Data 항목들이 있는 형태로 만들었음.
{ "dictionary": [
{"hangul": "한일", "hanja": "一", "h1": ".", "c1": ".", "h2": ".", "c2": ".", "h3": ".", "c3": ".", "h4": ".", "c4": ".", "h5": ".", "c5": ".", "h6": ".", "c6": ".", "exp": "나무 작대기 하나", "china": "yī", "japan": "ひと·ひとつ / いち·いつ", "english": "one"},
{"hangul": "두이", "hanja": "二", "h1": "한일", "c1": "一", "h2": "한일", "c2": "一", "h3": ".", "c3": ".", "h4": ".", "c4": ".", "h5": ".", "c5": ".", "h6": ".", "c6": ".", "exp": "나무 작대기 둘", "china": "èr", "japan": "ふた·ふたつ / に", "english": "two"},
]}
파일을 열어서 신규 Data를 쓰고 다시 파일을 열어서 GUI에 표시하는 코드
import json
from tkinter import *
import tkinter.font
tk = Tk()
tk.geometry("900x340+700+600")
font1 = tkinter.font.Font(family="Consolas", size=12)
tk.title('사전')
tk.wm_attributes("-topmost", 1)
def new():
with open ("data3.json", "r", encoding = 'utf-8') as f:
data = json.load(f)
#신규데이터추가
max = len(data['dictionary'])
if(data['dictionary'][max-1]['hangul'] != "X"):
string = '{ "dictionary": [\n'
for i in range(0,max):
temp = data['dictionary'][i]
temp = json.dumps(temp, ensure_ascii=False)
string = string + temp + ',\n'
string = string + '{ "hangul": "X", "hanja": ".", "h1": ".", "c1": ".", "h2": ".", "c2": ".", "h3": ".", "c3": ".", "h4": ".", "c4": ".", "h5": ".", "c5": ".", "h6": ".", "c6": ".", "exp":".", "china":".", "japan":"." , "english":"."}'
string = string + '\n]}'
#print(string)
f = open("data3.json", 'w', encoding = 'utf-8')
f.write(string)
f.close()
#신규데이터읽기
entry01.delete(0,"end")
entry01.insert(0,"X")
with open ("data3.json", "r", encoding = 'utf-8') as f:
data = json.load(f)
max = len(data['dictionary'])
h_temp = entry01.get()
result = -1
for i in range(0,max):
#print(data['dictionary'][i]['hangul'])
if(data['dictionary'][i]['hangul'] == h_temp ):
result = i
break
entry00.delete(0,"end")
entry00.insert(0,result)
#entry1.delete(0,"end")
#entry1.insert(0,data['dictionary'][i]['hangul'])
#entry2.delete(0,"end")
#entry2.insert(0,data['dictionary'][i]['hanja'])
entry31.delete(0,"end")
entry31.insert(0,data['dictionary'][i]['h1'])
entry41.delete(0,"end")
entry41.insert(0,data['dictionary'][i]['h2'])
entry51.delete(0,"end")
entry51.insert(0,data['dictionary'][i]['h3'])
entry61.delete(0,"end")
entry61.insert(0,data['dictionary'][i]['h4'])
entry71.delete(0,"end")
entry71.insert(0,data['dictionary'][i]['h5'])
entry81.delete(0,"end")
entry81.insert(0,data['dictionary'][i]['h6'])
entry32.delete(0,"end")
entry32.insert(0,data['dictionary'][i]['c1'])
entry42.delete(0,"end")
entry42.insert(0,data['dictionary'][i]['c2'])
entry52.delete(0,"end")
entry52.insert(0,data['dictionary'][i]['c3'])
entry62.delete(0,"end")
entry62.insert(0,data['dictionary'][i]['c4'])
entry72.delete(0,"end")
entry72.insert(0,data['dictionary'][i]['c5'])
entry82.delete(0,"end")
entry82.insert(0,data['dictionary'][i]['c6'])
entry9.delete(0,"end")
entry9.insert(0,data['dictionary'][i]['exp'])
entry10.delete(0,"end")
entry10.insert(0,data['dictionary'][i]['china'])
entry11.delete(0,"end")
entry11.insert(0,data['dictionary'][i]['japan'])
entry12.delete(0,"end")
entry12.insert(0,data['dictionary'][i]['english'])
from tkinter import *
import tkinter.font
tk = Tk()
tk.geometry("900x340+700+600")
font1 = tkinter.font.Font(family="Consolas", size=12)
tk.title('사전')
tk.wm_attributes("-topmost", 1)
def new():
with open ("data3.json", "r", encoding = 'utf-8') as f:
data = json.load(f)
#신규데이터추가
max = len(data['dictionary'])
if(data['dictionary'][max-1]['hangul'] != "X"):
string = '{ "dictionary": [\n'
for i in range(0,max):
temp = data['dictionary'][i]
temp = json.dumps(temp, ensure_ascii=False)
string = string + temp + ',\n'
string = string + '{ "hangul": "X", "hanja": ".", "h1": ".", "c1": ".", "h2": ".", "c2": ".", "h3": ".", "c3": ".", "h4": ".", "c4": ".", "h5": ".", "c5": ".", "h6": ".", "c6": ".", "exp":".", "china":".", "japan":"." , "english":"."}'
string = string + '\n]}'
#print(string)
f = open("data3.json", 'w', encoding = 'utf-8')
f.write(string)
f.close()
#신규데이터읽기
entry01.delete(0,"end")
entry01.insert(0,"X")
with open ("data3.json", "r", encoding = 'utf-8') as f:
data = json.load(f)
max = len(data['dictionary'])
h_temp = entry01.get()
result = -1
for i in range(0,max):
#print(data['dictionary'][i]['hangul'])
if(data['dictionary'][i]['hangul'] == h_temp ):
result = i
break
entry00.delete(0,"end")
entry00.insert(0,result)
#entry1.delete(0,"end")
#entry1.insert(0,data['dictionary'][i]['hangul'])
#entry2.delete(0,"end")
#entry2.insert(0,data['dictionary'][i]['hanja'])
entry31.delete(0,"end")
entry31.insert(0,data['dictionary'][i]['h1'])
entry41.delete(0,"end")
entry41.insert(0,data['dictionary'][i]['h2'])
entry51.delete(0,"end")
entry51.insert(0,data['dictionary'][i]['h3'])
entry61.delete(0,"end")
entry61.insert(0,data['dictionary'][i]['h4'])
entry71.delete(0,"end")
entry71.insert(0,data['dictionary'][i]['h5'])
entry81.delete(0,"end")
entry81.insert(0,data['dictionary'][i]['h6'])
entry32.delete(0,"end")
entry32.insert(0,data['dictionary'][i]['c1'])
entry42.delete(0,"end")
entry42.insert(0,data['dictionary'][i]['c2'])
entry52.delete(0,"end")
entry52.insert(0,data['dictionary'][i]['c3'])
entry62.delete(0,"end")
entry62.insert(0,data['dictionary'][i]['c4'])
entry72.delete(0,"end")
entry72.insert(0,data['dictionary'][i]['c5'])
entry82.delete(0,"end")
entry82.insert(0,data['dictionary'][i]['c6'])
entry9.delete(0,"end")
entry9.insert(0,data['dictionary'][i]['exp'])
entry10.delete(0,"end")
entry10.insert(0,data['dictionary'][i]['china'])
entry11.delete(0,"end")
entry11.insert(0,data['dictionary'][i]['japan'])
entry12.delete(0,"end")
entry12.insert(0,data['dictionary'][i]['english'])
label11 = Label(tk,text='일본', font=font1).grid(row=11,column=0)
label12 = Label(tk,text='영어', font=font1).grid(row=12,column=0)
# 각 단위 입력받는 부분 만들기
entry00 = Entry(tk, width=15, font=font1)
entry01 = Entry(tk, width=10, font=font1)
entry1 = Entry(tk, width=80, font=font1)
entry2 = Entry(tk, width=80, font=font1)
entry31 = Entry(tk, width=80, font=font1)
entry41 = Entry(tk, width=80, font=font1)
entry51 = Entry(tk, width=80, font=font1)
entry61 = Entry(tk, width=80, font=font1)
entry71 = Entry(tk, width=80, font=font1)
entry81 = Entry(tk, width=80, font=font1)
entry32 = Entry(tk, width=10, font=font1)
entry42 = Entry(tk, width=10, font=font1)
entry52 = Entry(tk, width=10, font=font1)
entry62 = Entry(tk, width=10, font=font1)
entry72 = Entry(tk, width=10, font=font1)
entry82 = Entry(tk, width=10, font=font1)
entry9 = Entry(tk, width=80, font=font1)
entry10 = Entry(tk, width=80, font=font1)
entry11 = Entry(tk, width=80, font=font1)
entry12 = Entry(tk, width=80, font=font1)
entry00.grid(row=0,column=1)
entry01.grid(row=0,column=2)
entry1.grid(row=1,column=1)
entry2.grid(row=2,column=1)
entry31.grid(row=3,column=1)
entry41.grid(row=4,column=1)
entry51.grid(row=5,column=1)
entry61.grid(row=6,column=1)
entry71.grid(row=7,column=1)
entry81.grid(row=8,column=1)
entry32.grid(row=3,column=2)
entry42.grid(row=4,column=2)
entry52.grid(row=5,column=2)
entry62.grid(row=6,column=2)
entry72.grid(row=7,column=2)
entry82.grid(row=8,column=2)
entry9.grid(row=9,column=1)
entry10.grid(row=10,column=1)
entry11.grid(row=11,column=1)
entry12.grid(row=12,column=1)
btn5 = Button(tk,text='SEQ',bg='black',fg='white',command=search_seq).grid(row=0,column=3)
btn2 = Button(tk,text='한글',bg='black',fg='white',command=search_hangul).grid(row=1,column=2)
btn8 = Button(tk,text='한자',bg='black',fg='white',command=search_hanja).grid(row=2,column=2)
btn1 = Button(tk,text='수정',bg='black',fg='white',command=update).grid(row=2,column=3)
btn8 = Button(tk,text='낱자',bg='black',fg='white',command=search_each_hanja).grid(row=4,column=3)
btn3 = Button(tk,text='다음',bg='black',fg='white',command=next).grid(row=6,column=3)
btn6 = Button(tk,text='이전',bg='black',fg='white',command=previous).grid(row=8,column=3)
btn4 = Button(tk,text='신규',bg='black',fg='white',command=new).grid(row=11,column=2)
btn7 = Button(tk,text='복사',bg='black',fg='white',command=copy).grid(row=11,column=3)
tk.mainloop()
label12 = Label(tk,text='영어', font=font1).grid(row=12,column=0)
# 각 단위 입력받는 부분 만들기
entry00 = Entry(tk, width=15, font=font1)
entry01 = Entry(tk, width=10, font=font1)
entry1 = Entry(tk, width=80, font=font1)
entry2 = Entry(tk, width=80, font=font1)
entry31 = Entry(tk, width=80, font=font1)
entry41 = Entry(tk, width=80, font=font1)
entry51 = Entry(tk, width=80, font=font1)
entry61 = Entry(tk, width=80, font=font1)
entry71 = Entry(tk, width=80, font=font1)
entry81 = Entry(tk, width=80, font=font1)
entry32 = Entry(tk, width=10, font=font1)
entry42 = Entry(tk, width=10, font=font1)
entry52 = Entry(tk, width=10, font=font1)
entry62 = Entry(tk, width=10, font=font1)
entry72 = Entry(tk, width=10, font=font1)
entry82 = Entry(tk, width=10, font=font1)
entry9 = Entry(tk, width=80, font=font1)
entry10 = Entry(tk, width=80, font=font1)
entry11 = Entry(tk, width=80, font=font1)
entry12 = Entry(tk, width=80, font=font1)
entry00.grid(row=0,column=1)
entry01.grid(row=0,column=2)
entry1.grid(row=1,column=1)
entry2.grid(row=2,column=1)
entry31.grid(row=3,column=1)
entry41.grid(row=4,column=1)
entry51.grid(row=5,column=1)
entry61.grid(row=6,column=1)
entry71.grid(row=7,column=1)
entry81.grid(row=8,column=1)
entry32.grid(row=3,column=2)
entry42.grid(row=4,column=2)
entry52.grid(row=5,column=2)
entry62.grid(row=6,column=2)
entry72.grid(row=7,column=2)
entry82.grid(row=8,column=2)
entry9.grid(row=9,column=1)
entry10.grid(row=10,column=1)
entry11.grid(row=11,column=1)
entry12.grid(row=12,column=1)
btn5 = Button(tk,text='SEQ',bg='black',fg='white',command=search_seq).grid(row=0,column=3)
btn2 = Button(tk,text='한글',bg='black',fg='white',command=search_hangul).grid(row=1,column=2)
btn8 = Button(tk,text='한자',bg='black',fg='white',command=search_hanja).grid(row=2,column=2)
btn1 = Button(tk,text='수정',bg='black',fg='white',command=update).grid(row=2,column=3)
btn8 = Button(tk,text='낱자',bg='black',fg='white',command=search_each_hanja).grid(row=4,column=3)
btn3 = Button(tk,text='다음',bg='black',fg='white',command=next).grid(row=6,column=3)
btn6 = Button(tk,text='이전',bg='black',fg='white',command=previous).grid(row=8,column=3)
btn4 = Button(tk,text='신규',bg='black',fg='white',command=new).grid(row=11,column=2)
btn7 = Button(tk,text='복사',bg='black',fg='white',command=copy).grid(row=11,column=3)
tk.mainloop()
728x90
'python > 문법' 카테고리의 다른 글
파이썬 클립보드에 스트링 넣기 빼기 (0) | 2023.09.02 |
---|---|
파이썬 스트링 자르는 법 (0) | 2023.09.02 |
파이썬 try except (0) | 2023.06.06 |
string을 array로 만드는 함수 split() (0) | 2022.12.15 |
hello world (0) | 2022.04.17 |