处理HTTP返回包包括对关键参数的校验,参数完整性检验,获取返回包参数的方法,返回包数据去重方法

在执行时遇到不少问题,部分问题记录如下:

1、报错信息:“TypeError: list indices must be integers or slices, not str”

排查发现:查询出的数据是列表类型,而不是字典类型,再排查发现调用的方法有问题导致查询出来的结果不对

本来是要调用查询数据库的方法select_one(),然后编写代码时根据提示选错了方法,选择了op_sql方法,导致返回的结果不是字典,而是列表

问题解决:将调用方法改为select_one()解决

params_interface = opration_db.select_one(sen_sql)

2、报错信息“keyError:'result_interface' ”   “keyError:'id'”

查看报错提示,没有找到对应的下标为result_interface和id的参数,设置断点输出对应的数据,发现确实没有这两个字段,定位下来:为什么会没有这两个字段呢,再次查看原来查询语句时并未查询这两个字段,加上查询对应的字段就能解决该问题

3、报错信息“TypeError:not all arguments converted during string formatting”和“SyntaxError: unexpected EOF while parsing”

“TypeError:not all arguments converted during string formatting”:是因为print输出时定义了一个参数占位符,但是后面的参数有两个,多加一个占位符就可以解决问题

“SyntaxError: unexpected EOF while parsing”:看日志是列表数据少了结束符合‘]’,加上解决问题

4、比较完整性参数值正确,但是一点点在方法运行后输出却为空

debug时发现调用__recur_params方法后数据变为空值的,然后查看发现编写脚本时少写了继续调用本方法的代码,加上后又出现了问题5的报错

self.__recur_params(temp_result_interface)

5、报错信息“Message: AttributeError("'dict' object has no attribute 'startswith'")”

Message: AttributeError("'dict' object has no attribute 'startswith'"):字典对象没有startswith属性,就是说这个时候传入的比较值已经是字典类型而不是字符串类型了,startswith()方法是字符串的方法,所以就会报错

if result_interface.startswith('{') and isinstance(result_interface, str):

查看代码发现判断时先判断字符串的开始是否为“{”开头,再判断传入的值是否为字符串,这个判断逻辑有问题;将判断是否为字符串先判断,若为字符串后才进行判断字符串的开头字符就能解决问题

if isinstance(result_interface, str) and result_interface.startswith('{'):

Python处理HTTP返回包遇到问题总结TypeError、keyError、SyntaxError、AttributeError的更多相关文章

  1. python 深入模块和包

    模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...

  2. Python第八天 模块 包 全局变量和内置变量__name__ Python path

    Python第八天  模块   包   全局变量和内置变量__name__    Python path 目录 Pycharm使用技巧(转载) Python第一天  安装  shell  文件 Pyt ...

  3. python+pcap+dpkt 抓包小实例

    #!/usr/bin/env python # -*- coding: utf-8 -*- """ 网络数据包捕获与分析程序 """ imp ...

  4. Python标准库 (pickle包,cPickle包)

    在之前对Python对象的介绍中 (面向对象的基本概念,面向对象的进一步拓展),我提到过Python“一切皆对象”的哲学,在Python中,无论是变量还是函数,都是一个对象.当Python运行时,对象 ...

  5. Python并发编程-concurrent包

    Python并发编程-concurrent包 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.concurrent.futures包概述 3.2版本引入的模块. 异步并行任务编程 ...

  6. (Python )模块、包

    本节开始学习模块的相关知识,主要包括模块的编译,模块的搜索路径.包等知识 1.模块 如果我们直接在解释器中编写python,当我们关掉解释器后,再进去.我们之前编写的代码都丢失了.因此,我们需要将我们 ...

  7. python socket发送魔法包网络唤醒开机.py

    python socket发送魔法包网络唤醒开机.py 现在的电脑应该都普遍支持有线网络的WOL了,支持无线网络唤醒的电脑,可能比较少. """ python socke ...

  8. python xlrd和xlwtxlutils包的使用

    安装xlrd读取模块 首先去官网或者pypi下载安装包,然后解压到任意目录 在dos下进入该目录,执行python setup.py install安装 验证成功进入python,执行import 包 ...

  9. Python 处理server返回gzip内容

    Python 如何处理server返回gzip压缩过的内容,代码如下: from StringIO import StringIOimport gzip request = urllib2.Reque ...

随机推荐

  1. CBV和APIView源码分析

    CBV源码分析 查看源码的方式,先查看自身,没有去找父类,父类没有就去找父父类... 自己定义的类 class Author(View): def get(self,request): back_di ...

  2. ThinkPHP的几种路由形式总结

    本篇文章总结了ThinkPHP的几种路由形式,分别是普通模式.PATHINFO.REWRITE和兼容模式,希望对各位学习thinkphp的朋友有帮助! thinkphp官方文档里有详细的说明: Thi ...

  3. idea的ktorm框架代码生成器插件

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

  4. [模拟]Educational Codeforces Round 2A Extract Numbers

    Extract Numbers time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

  5. python plt 色卡

    https://blog.csdn.net/Strive_For_Future/article/details/100151261 plt 绘图时通常需要各种颜色,还需要去介绍文档找,很麻烦,这里把p ...

  6. OpenCV-Python 霍夫圈变换 | 三十三

    学习目标 在本章中, 我们将学习使用霍夫变换来查找图像中的圆. 我们将看到以下函数:cv.HoughCircles() 理论 圆在数学上表示为(x−xcenter)2(y−ycenter)2=r2(x ...

  7. 机器学习中的 7 大损失函数实战总结(附Python演练)

    介绍 想象一下-你已经在给定的数据集上训练了机器学习模型,并准备好将它交付给客户.但是,你如何确定该模型能够提供最佳结果?是否有指标或技术可以帮助你快速评估数据集上的模型? 当然是有的,简而言之,机器 ...

  8. ​GAN的五大有趣应用

    引言 你能看出这张照片中面部的共同点吗? 这些人都不是真实存在的!这些面部图像都是由GAN技术生成的. "GAN"这个词是由Ian Goodfellow在2014年提出的,但相关概 ...

  9. javascript创建函数的方法

    函数对任何语言来说都是一个核心的概念.函数,是一种封装(将一些语句,封装到函数里面). 通过函数可以封装任意多条语句,而且可以在任何地方.任何时候调用执行. ECMAScript中的函数使用funct ...

  10. [vijos1460&Metocode P223]拉力赛<LCA>

    题目链接:https://vijos.org/p/1460 http://oj.fjaxyz.com:3389/problem.php?id=223 我不禁开始怀疑,这,真的是最近公共祖先的题吗,我是 ...