• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

과제 에러 질문합니다

20.09.24 23:01 작성 조회수 83

0

안녕하세요. 현재 실습의 용이성을 위해 엑셀 형태의 1000 Rows.xlsx 파일을 별도의 코드 작성을 통해 동일 파일 이름의 json 형태로 바꿔 사용중입니다. DB에 인서트하는 코드는 다음과 같습니다. 

import pymysql

import simplejson as json

conn = pymysql.connect(host='localhost', user='python', password='1234Qwerty', db='python_app1', charset='utf8')

conn.select_db('python_app1')

c = conn.cursor()

c.execute("CREATE TABLE IF NOT EXISTS 1000Rows(id INT(3) NOT NULL, \

                device VARCHAR(100), \

                seller VARCHAR(30), \

                inventory INT(6), \

                attribute1 FLOAT(6,2), \

                attribute2 FLOAT(5,2), \

                attribute3 FLOAT(4,2), \

                location ENUM('Nunavut', 'Northwest Territories', 'Prince Edward Island', 'Manitoba', 'British Columbia'), \

                complement VARCHAR(30), \

                ratio FLOAT(3,2), PRIMARY KEY(id))" \

                )

try:

    with open('/Users/jeongjihyeon/Desktop/2020-2/inflearn/section5/data/1000 Rows.json', 'r') as infile:

        r = json.load(infile)

        rowList =[]

        for row in r:

            t = (row['id'], row['device'], row['seller'], row['inventory'], row['attribute1'],row['attribute2'],row['attribute3'],row['location'],row['complement'],row['ratio'])

            rowList.append(t)

        c.executemany('INSERT INTO 1000Rows(id, device, seller,inventory,attribute1,attribute2,attribute3,location,complement,ratio) VALUES (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)', rowList)

    conn.commit()

finally:

    conn.close()

수업 중 실습한 예제와 거의 동일하게 코드를 짰는데도 

simplejson.errors.JSONDecodeError: Extra data: line 2 column 1 - line 1001 column 1 (char 272 - 267694)

이런 에러가 뜹니다 ㅠㅠ 변수 r에 json.load를 할당하는 과정에서 문제가 생긴 것 같은데 JSONDecodeError라는게 정확히 어떤 걸 말하는지 서칭을 해도 잘 모르겠네요...DB에 테이블과 각각의 필드값은 잘 들어간 상태이구요. 파일형식은 json으로 제대로 변환되었고 모듈 임포트도 문제 없이 된 것 같은데 어디가 문제일까요..? 

자세한 설명 항상 감사드립니다. 

답변 2

·

답변을 작성해보세요.

0

네 다른 json파일 넣어보니까 잘 되더라구요! 제가 변환한 json파일 형식에 문제가 있었나봅니다 ㅠㅠ

감사합니다. 

0

이럴 경우는 

json 읽어오시는 부분을 일단 주석으로 처리 하신 후

임의대로 아무 json 형식으로 삽입해 보세요.

그후 문제가 발생이 안되면 해당 저장되어 있는 json 파일을 편집기를 통해서 정확하게 utf-8 형식으로

다른 이름으로 저장 후 테스트 하시길 추천드립니다.