Python编程基础:IDE编译直接报错了,即使不明白也要去参考系统给的提示

2023-12-14 13:26:05

1、错误信息

SyntaxError: Non-UTF-8 code starting with ‘\xe8’ in file D:\xxxx\scripts\testjson.py on line 4, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details

  • 错误是执行下面的代码导致的;题主是以eclipse为例
import jsonpath
sert = {'code': '200', 'msg': '请求成功', 'data': {'records': [{'id': None, 'tenantId': None, 'houseRoomId': '170156xxxxx50628', 'houseBaseId': '1701568827xxxx8', 'houseAddress': '深圳市南山区南山街道自动化xxxxx-201', 'address': '自动化测试房源房间xxxx', 'houseMaintainersId': '161390xxxx94530', 'houseType': 3, 'actualPrice': 1234.0, 'cityName': '深圳市', 'areaName': '南山区', 'townName': '南山街道', 'communityName': '自动化测试房源房间', 'buildingNo': '1', 'unit': '1', 'doorplate': '201', 'roomName': '201', 'isMainRoom': 1, 'houseArea': 88.0, 'houseAlias': '1栋1单元', 'roomTypeId': '1701569xxxx2913', 'roomTypeName': None, 'deptId': '15863544xxxxx4', 'deptName': None, 'is_bind_all_device': 0, 'deviceInfos': [], 'communityId': '1701568xxxx8721', 'buildingId': '1701568xxxx50624', 'houseBizMode': 2, 'talentedHouseTypeId': None, 'talentedHouseStatus': '1', 'propertyPrice': None}], 'total': 20, 'size': 20, 'current': 1, 'orders': [], 'optimizeCountSql': True, 'searchCount': True, 'maxLimit': None, 'countId': None, 'pages': 1}}
print(type(sert))

2、解决过程

  • 首先直接忽视后面错误提示的详情地址:http://python.org/dev/peps/pep-0263/
  • 先百度前面半截错误信息:SyntaxError: Non-UTF-8 code starting with ‘\xe8’
  • 明眼人都知道这肯定是字符编码的问题,中文在这里执行无法识别
2.1、结论

百度会有两种解决办法:
1、在脚本前面注释加coding指定编码格式
2、编辑IDE设置编码格式

在这里插入图片描述

然而都不一定有用,甚至还浪费了更多纠结的时间。

2.2、正解

直接访问错误提示的地址,从上面去找到答案。

在这里插入图片描述

3、不要盲目相信自己百度的能力

#!/usr/bin/python
# -*- coding: latin-1 -*-

import jsonpath
sert = {'code': '200', 'msg': '请求成功', 'data': {'records': [{'id': None, 'tenantId': None, 'houseRoomId': '170156xxxxx50628', 'houseBaseId': '1701568827xxxx8', 'houseAddress': '深圳市南山区南山街道自动化xxxxx-201', 'address': '自动化测试房源房间xxxx', 'houseMaintainersId': '161390xxxx94530', 'houseType': 3, 'actualPrice': 1234.0, 'cityName': '深圳市', 'areaName': '南山区', 'townName': '南山街道', 'communityName': '自动化测试房源房间', 'buildingNo': '1', 'unit': '1', 'doorplate': '201', 'roomName': '201', 'isMainRoom': 1, 'houseArea': 88.0, 'houseAlias': '1栋1单元', 'roomTypeId': '1701569xxxx2913', 'roomTypeName': None, 'deptId': '15863544xxxxx4', 'deptName': None, 'is_bind_all_device': 0, 'deviceInfos': [], 'communityId': '1701568xxxx8721', 'buildingId': '1701568xxxx50624', 'houseBizMode': 2, 'talentedHouseTypeId': None, 'talentedHouseStatus': '1', 'propertyPrice': None}], 'total': 20, 'size': 20, 'current': 1, 'orders': [], 'optimizeCountSql': True, 'searchCount': True, 'maxLimit': None, 'countId': None, 'pages': 1}}
print(type(sert))

再执行就不会报错了,是不是很简单;有没有被自己的’蠢’而感到羞愧?题主面壁去了。

文章来源:https://blog.csdn.net/u011466469/article/details/134990339
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。