편집 기록

편집 기록
  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.01.22

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


    엑셀에 있는 데이터를 파이썬에서 구글 트랜스퍼 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
    
  • 프로필 편집요청빌런님의 편집
    날짜2020.01.21

    jason 디코드 오류 raise JSONDecodeError("Expecting value", s, err.value) from None 356 return obj, end JSONDecodeError: Expecting value: line 1 column 1 (char 0)


    엑셀에 있는 데이터를 파이썬에서 구글 트랜스퍼 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
    
  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.01.21

    jason 디코드 오류 질문드립니다 ㅠ JSONDecodeError: Expecting value: line 1 column 1 (char 0)


    엑셀에 있는 데이터를 파이썬에서 구글 트랜스퍼 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