报错
报错代码:
s_rep = client.service.callWebService(serviceName=s_name, userName=userName, password=s_pass, param=‘’)
s_rep_result = json.loads(s_rep)
继处理上个异常TypeError: string indices must be integers后,紧接抛出异常
Traceback (most recent call last):
File "E:kc.py", line 27, in <module>
s_rep_result = json.loads(s_rep)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\json\__init__.py", line 319, in loads
return _default_decoder.decode(s)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\json\decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Invalid \escape: line 1 column 31616 (char 31615)
原因分析
Invalid \escape:无效字符反斜线
返回结果(…“zwmc”:“森管(培育\资源管理)综合实习(1)”…)中包含\
该异常一般出现在 JSON 格式化的情况下,如果 JSON 中出现特殊字符易出现该 BUG。
解决
使用replace()替换特殊字符
修改代码:
s_rep = client.service.callWebService(serviceName=s_name, userName=userName, password=s_pass, param='')
s_rep_str = escape(s_rep).replace("\\", "\\\\")
s_rep_result0 = json.loads(s_rep_str)
参考资料:
https://blog.csdn.net/hihell/article/details/109526943