파이썬 딕셔너리 스플릿 질문

조회수 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="|" 인자를 주어 읽는 방식이겠습니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)