jason 디코드 오류 JSONDecodeError: Expecting value: line 1 column 1 (char 0)

조회수 2825회

엑셀에 있는 데이터를 파이썬에서 구글 트랜스퍼 api를 이용해 번역하는 작업을 진행하고 있습니다.

번역시 특정 단어는 DICTIONARY에 매칭된 단어로 번역하려고 조건을 넣엇는데..

문제는 처음에는 잘되다가 어느새부터 JASON DECOE오류가 뜨며 에러가 발생하는것입니다.

JASON을 다로 코딩하지도않았는데 아래와 같이 오류가 나는 이유는 무엇일까요 ㅠㅠ

JSONDecodeError: Expecting value: line 1 column 1 (char 0)

코드

#-*- coding: utf-8 -*-
import re
import time
import datetime
import sys
import os
from googletrans import Translator
import csv
from openpyxl import Workbook
from openpyxl import load_workbook
import xlwt
from xlrd import open_workbook

wb_dic = load_workbook('./DICTIONARY.xlsx')
sheetList_dic = wb_dic.get_sheet_names()
sheet_dic = wb_dic.get_sheet_by_name(sheetList_dic[0])
dic_cnt = 2
chi_en = {}
chi_kr = {}
while True:
    if sheet_dic.cell(row=dic_cnt, column=1).value is None:
        break
    chi_en[sheet_dic.cell(row=dic_cnt, column=1).value] = sheet_dic.cell(row=dic_cnt, column=2).value
    chi_kr[sheet_dic.cell(row=dic_cnt, column=1).value] = sheet_dic.cell(row=dic_cnt, column=3).value
    dic_cnt = dic_cnt + 1

translator = Translator()

def search(dirname):
    filenames = os.listdir(dirname)
    for filename in filenames:
        full_filename = os.path.join(dirname, filename)
        ext = os.path.splitext(full_filename)[-1]
        if ext == '.xlsx': 
            return full_filename

dirname = './input/'
dirname2 = './output/'
filenames = os.listdir(dirname)
for filename in filenames:
    full_filename = os.path.join(dirname, filename)
    ext = os.path.splitext(full_filename)[-1]


if ext == '.xlsx':
        print (full_filename)
        wb_re = load_workbook(full_filename)
        sheetList_re = wb_re.get_sheet_names()
        sheet_re = wb_re.get_sheet_by_name(sheetList_re[0])

        cnt = 2
        while True:
            print (cnt-1)
            if sheet_re.cell(row=cnt, column=1).value is None:
                break
            chi_en_str = sheet_re.cell(row=cnt, column=19).value
            chi_kr_str = sheet_re.cell(row=cnt, column=19).value
            for key in chi_en:
                chi_en_str = chi_en_str.replace(key,chi_en[key])
            for key in chi_kr:
                chi_kr_str = chi_kr_str.replace(key,chi_kr[key])

            sheet_re.cell(row=cnt, column=36).value = translator.translate(chi_kr_str, src='zh-cn', dest='ko').text
            en_temp = translator.translate(chi_en_str, src='zh-cn', dest='en').text
            sheet_re.cell(row=cnt, column=37).value = translator.translate(en_temp, src='zh-cn', dest='en').text
            sheet_re.cell(row=cnt, column=38).value = translator.translate(en_temp, src='en', dest='ko').text
            cnt = cnt + 1
            time.sleep(1)
        print (dirname2+full_filename.split('/')[-1].split('.')[0]+'_after.xlsx')
        wb_re.save(dirname2+full_filename.split('/')[-1].split('.')[0]+'_after.xlsx')
        wb_re.close()
    else:
        try:
            print (full_filename)
            workbookw = xlwt.Workbook(encoding='utf-8')
            worksheetw = workbookw.add_sheet('sheet1')
            wb = open_workbook(full_filename)
            worksheet = wb.sheet_by_index(0)
            nrows = worksheet.nrows
            # 불러온 데이터를 저장할 딕셔너리를 선언합니다.
            worksheetw.write(0, 35, 'text(kr)')
            worksheetw.write(0, 36, 'text(en)')
            worksheetw.write(0, 37, 'text(kr2)')
            cnt = 1
            for row_num in range(nrows):
                for col in range(35):
                    print (col)
                    worksheetw.write(row_num, col, worksheet.cell_value(row_num, col))
                if row_num!=0:
                    chi_en_str = worksheet.cell_value(row_num, 18)
                    chi_kr_str = worksheet.cell_value(row_num, 18)
                    for key in chi_en:
                        chi_en_str = chi_en_str.replace(key,chi_en[key])
                    for key in chi_kr:
                        chi_kr_str = chi_kr_str.replace(key,chi_kr[key])

                    chi_str = worksheet.cell_value(row_num, 18).replace('','')
                    worksheetw.write(row_num, 35, translator.translate(chi_kr_str, src='zh-cn', dest='ko').text)
                    temp_tran_en = translator.translate(chi_en_str, src='zh-cn', dest='en').text
                    worksheetw.write(row_num, 36, temp_tran_en)
                    worksheetw.write(row_num, 37, translator.translate(temp_tran_en, src='en', dest='ko').text)
                    time.sleep(2)
            print (dirname2+full_filename.split('/')[-1].split('.')[0]+'_after.xls')        
            workbookw.save(dirname2+full_filename.split('/')[-1].split('.')[0]+'_after.xls')
        except:
            pass

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

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

(ಠ_ಠ)
(ಠ‿ಠ)