首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >将字符串从一个方法发送到同一文件中的另一个方法时,无法解码utf8

将字符串从一个方法发送到同一文件中的另一个方法时,无法解码utf8
EN

Stack Overflow用户
提问于 2019-06-11 01:27:49
回答 1查看 33关注 0票数 0

当我在同一文件中将一个字符串从一个方法发送到另一个方法时,我得到了以下错误:UnicodeDecodeError: 'utf8' codec can't decode bytes in position 2-3: unexpected end of data

当我在第二个方法中将输入值替换为字符串时,该函数起作用。当我将字符串作为变量发送时,它不会。当我将循环放入method2中时,该函数起作用了。是否存在utf8和unicode的编码问题?当我从method1向method2发送一个列表时,它起作用了。当我只发送一个字符串时,它不起作用。

代码语言:javascript
复制
def compareTwoFiles(file1Path, file2Path):
    try:
        print(type(file2Path) #result is unicode
        with open(file2Path, "r") as json_file: # does not work
        #with open("./DEV3_export.json", "r") as json_file: # works 
            fileDict = json.load(json_file)
            task_list = fileDict['definition']['tasks']
            for i, task_details in enumerate(task_list):
                task_details = task_list[i]
                print(task_details)


    except IOError as e:
        logging.error(e.message)
    return

def compareFilesInTwoDirectories(serversNameList):
        catchedServerPath = './servers/' + file_name + '_export.json'
        newServersPath = './' + file_name + '_export.json'

        logging.warning(catchedServerPath)
        logging.warning(newServersPath)
        if os.stat(newServersPath).st_size > 0:
            compareTwoFiles(catchedServerPath, newServersPath)
    return 

print(compareFilesInTwoDirectories(serversNameList))
EN

回答 1

Stack Overflow用户

发布于 2019-06-11 03:14:57

已修复此问题,使用io.open而不是openwith io.open(file2Path) as json_file: fileDict = json.load(json_file) task_list = fileDict['definition']['tasks'] for i, task_details in enumerate(task_list): task_details = task_list[i] print(task_details)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56530931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档