当我在同一文件中将一个字符串从一个方法发送到另一个方法时,我得到了以下错误:UnicodeDecodeError: 'utf8' codec can't decode bytes in position 2-3: unexpected end of data
当我在第二个方法中将输入值替换为字符串时,该函数起作用。当我将字符串作为变量发送时,它不会。当我将循环放入method2中时,该函数起作用了。是否存在utf8和unicode的编码问题?当我从method1向method2发送一个列表时,它起作用了。当我只发送一个字符串时,它不起作用。
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))
发布于 2019-06-11 03:14:57
已修复此问题,使用io.open
而不是open
。with 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)
https://stackoverflow.com/questions/56530931
复制相似问题