파이썬 딕셔너리 스플릿 질문
조회수 578회
안녕하세요! movie_data.txt 는 영화 이름, 회사, 개봉날짜 등 데이터들이 쭉 입력되어있는거고 이 메모장을 불러서 '|'로 분리하여 mydict 라는 딕셔너리에 저장을 했습니다.
mydict = {}
fp=open("drive/MyDrive/pythontest/movie_data.txt", 'r', encoding='cp949')
for line in fp.readlines():
line = line.strip()
x= line.split("|")
mydict[x[0]] =x[1]
mydict[x[1]] =x[2]
mydict[x[2]] =x[3]
mydict[x[3]] =x[4]
mydict[x[4]] =x[5]
mydict[x[5]] =x[6]
mydict[x[6]] =x[7]
mydict[x[7]] =x[8]
fp.close()
while True:
in_word = input("영화이름 입력 (종료:0)")
x=in_word
if (in_word =='0'):
break
else:
if (in_word in mydict.keys()):
meta_data =mydict[in_word]
print("Company :", meta_data[0])
print("Release date:", meta_data[1])
print("Country :", meta_data[2])
print("Total screen:", meta_data[3])
print("Profit :", meta_data[4])
print("Total num :", meta_data[5])
print("Grade :", meta_data[6])
else:
print("데이터베이스에 없는 영화입니다.")
근데 실행을 하면 영화이름 입력 (종료:0)몽타주
Company : (
Release date: 주
Country : )
Total screen: 넥
Profit : 스
Total num : 트
Grade : 엔
영화이름 입력 (종료:0)0
이렇게 뜨거든요.
mydict에 잘못 저장이 된 건 알겠는데 어떤식으로 코드를 짜야할지 모르겠어요.
1 답변
-
for line in fp.readlines(): line = line.strip() x= line.split("|") mydict[x[0]] =x[1] mydict[x[1]] =x[2] mydict[x[2]] =x[3] mydict[x[3]] =x[4] mydict[x[4]] =x[5] mydict[x[5]] =x[6] mydict[x[6]] =x[7] mydict[x[7]] =x[8]
이걸
for line in fp.readlines(): line = line.strip() x= line.split("|") mydict[x[0]] =x[1:]
이렇게 고쳐야 하겠습니다.
제가 더 선호하는 방식은 pandas 의
read_csv
함수를sep="|"
인자를 주어 읽는 방식이겠습니다.
댓글 입력