处理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. Django 支付宝付款接口的使用

    我们在开发的过程中经常会碰到调用微信或者支付宝接口进行付款,付款完成之后,如果用户绑定了我的账号,我只要有活动了,就要给这个关注我的用户推动消息,让用户知道,比如说,我们经常会关注一些公众号,然后这些 ...

  2. [Docker4] Docker-machine进行多docker host管理

    Docker Machine Docker machine就是自动化安装docker daemon Docker machine的provider docker machine provider 常见 ...

  3. body体里面传///貌似jmeter不支持

    原因是:当接口请求参数含\\\时请求到服务器端是\\,少了一个\导致参数不合法报错:求助一个大神说是 因为如标题 : 解决如上图所示,完美解决

  4. CF1326C Permutation Partitions 题解,

    原题链接 简要题意: 给定一个 \(1\) ~ \(n\) 的置换,将数组分为 \(k\) 个区间,使得每个区间的最大值之和最大.求这个值,和分区的方案数. 关键在于 \(1\) ~ \(n\) 的置 ...

  5. 李宏毅老师机器学习课程笔记_ML Lecture 2: Where does the error come from?

    引言: 最近开始学习"机器学习",早就听说祖国宝岛的李宏毅老师的大名,一直没有时间看他的系列课程.今天听了一课,感觉非常棒,通俗易懂,而又能够抓住重点,中间还能加上一些很有趣的例子 ...

  6. leetcode 签到 面试题40. 最小的k个数

    题目 输入整数数组 arr ,找出其中最小的 k 个数.例如,输入4.5.1.6.2.7.3.8这8个数字,则最小的4个数字是1.2.3.4. 示例 1: 输入:arr = [3,2,1], k = ...

  7. 深度学习论文TOP10,2019一季度研究进展大盘点

    9012年已经悄悄过去了1/3. 过去的100多天里,在深度学习领域,每天都有大量的新论文产生.所以深度学习研究在2019年开了怎样一个头呢? Open Data Science对第一季度的深度学习研 ...

  8. Python命令行执行.py文件提示ModuleNotFoundError:No module named 'XXX'解决办法

    原因:在命令行执行.py文件找不到包是因为我们没有把项目路径保存,可以通过sys.path.append()保存项目路径,执行后就能成功. ############################## ...

  9. JS 剑指Offer(六) 用两个栈实现队列

    题目:用两个栈实现队列,实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入整数和在队列头部删除整数,若队列中没有元素deleteHead返回-1 分析:在队列的尾部插入 ...

  10. DevOps技能自查表

    前篇提到了DevOps的工作岗位要求,但是没有来的及深入细节,本文根据个人10年多的经验,尽量详细地列举DevOps所需要用到的一些技术和相关参考网站. Linux基础 Linux系统的基本概念: 必 ...