python3编写脚本时遇到的坑......

一: 在python中使用request请求post时因为json解析错误导致请求失败

1、在python中使用request请求post时报错

具体代码如下

日志报错:

org.springframework.http.converter.HttpMessageNotReadableException: JSON parse error: syntax error, expect {, actual ident, pos 0, fastjson-version 1.2.36; nested exception is com.alibaba.fastjson.JSONException: syntax error, expect {, actual ident, pos 0, fastjson-version 1.2.36

报错内容

2、用postman请求这个接口,传同样的请求头和参数是可以调通的

3、来思考一下原因

  首先,在其他位置这么传参数是可以调通的,那么参数设置是没问题的,

  其次,代码肯定是没问题的,因为可以执行,代码的控制台也没报错

  最后,反思一下,查看日志中的报错内容,翻译之后貌似是json语法的错误, 难道是Python对json的转换有问题?导致参数以json传入的时候没传进去?

  去百度:

  python3     文件默认编码是utf-8 , 字符串编码是 unicode      

        以utf-8 或者 gbk等编码的代码,加载到内存,会自动转为unicode正常显示。


隐隐约约知道病症在哪了,下边这个字典是传的参数

这个字典的参数应该是unicode格式的,没有转换成json格式就传过去了,所以报错

继续百度,怎么将字典转换成json格式

先导入json包,再用json.dumps讲这个字典转换成json格式

代码如下:

执行一下:

OK!!没有报错

原文地址:https://www.cnblogs.com/caoyinshan/p/11225127.html

时间: 2024-10-24 04:13:40

python3编写脚本时遇到的坑......的相关文章

vim 编写脚本时自动配置添加版权信息

在编写脚本时,可添加版权信息,以便脚本的最大实用性,也是个人劳动所在 下面是vim 编写脚本时自动配置添加版权信息 在用户的家目录下(一般是root目录)编辑.vimrc(注意是隐藏文件) 编辑以下内容        (若以下内容复制格式有问题,请将附件的vimrc拷贝并改名为.vimrc) map <F4> :call TitleDet()<cr>function AddTitle()    call append(0,"\#!/bin/bash")    

python-appium练习编写脚本时遇到问题

遇到问题: 1.安卓4.2及以下系统无法识别resource-id属性 只能用text属性识别 2.输入中文无法识别 脚本最顶部增加#coding=utf-8 3.对象无法识别resource-id属性,text属性都为空 用坐标模拟点击事件 模拟点击 driver.tap([(165,755),],50) 安卓用户名输入方法 driver.find_element_by_name("手机号码/用户名").send_keys("Df5h")

selenium编写脚本时遇到windows身份验证

使用selenium写自动化脚本过程中,遇到了windows验证提示框,折腾了好久才解决,记录一下,待后查询O(∩_∩)O~ 试了两种方法: 1.dr.get(user:pwd@url) eg: dr.get('http://user:pwd@xxx.com') 这里要注意查看页面跳转,实验过程中出现了用户名密码正确,但登录就是失败的情况,后查看get地址,地址发生了变化.更改新的地址,测试通过. 2.使用autoit(具体用法可查询autoit帮助文档)

Python语言编写脚本时,对日期控件的处理方式

对日期控件,日期控件的输入控一般是不能手动输入的:把readonly属性去掉就好 其实很简单,我们不去搞时间日期空间,我们把它当成一个普通的input框处理就好了! 但是,很多此类型input框都是禁止手动输入的,怎么办? 很简单,用js把禁止输入的readonly属性去掉就好了.如下四种方法都可 # -*- coding: utf-8 -*- from selenium import webdriver from time import sleep driver = webdriver.Fir

Jmeter脚本录制方法--手工编写脚本(jmeter与fiddler结合使用)

手工编写脚本,建议使用这一种方法,虽然写的过程有点繁琐,但调试脚本比前两者方式都要便捷. 首先来看下三种方式的比较吧,不然看不出什么. 三种方式的优劣: badboy: 1.有时候录制不了,兼容性较差 2.post请求的时候,如果链接中有参数.body里面也有参数,都会放在body里面 jmeter 代理录制: 1.请求抓取过多 2.配置代理等操作比较繁琐 手工编写: 要一个个请求手工去写 手工编写脚本 一般通过fiddler抓包或者开发提供的接口设计文档的形式,在Jmeter的GUI界面操作进

zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控

zabbix使用自己编写脚本模板和zabbix自带模板两种方法添加对指定进程和端口的监控 1.自带监控模板进行os的监控 进入/usr/local/zabbix/etc/zabbix_agentd.conf 配置文件修改 LogRemoteCommands=1     ###开启脚本功能 Server=192.168.5.129     ##修改zabbix指向的服务器: 重启zabbix_agentd.zabbix_server服务 在配置-->主机-->添加主机--> 配置主机信息主

写hive sql和shell脚本时遇到几个蛋疼的问题!

错误一: Hive的where后不能用字段的别名, 错误二: hive的groupby中不能用自己定义函数,否则报错(用嵌套select取代) 错误三: 运行:$ ./hive_game_operationstatis5.sh时,报错信息例如以下: ./hive_game_operationstatis5.sh:line 11: [: missing `]' ./hive_game_operationstatis5.sh:line 17: /tmp/statis_activitysourcest

linux下Bash编程循环语句特殊用法之编写脚本(十)

linux下Bash编程while语句特殊用法之编写脚本(十) 1.循环控制: break:中断整个循环语句,即退出循环后执行脚本后面的语句 continue:中断当前本次循环,提前进入下一轮循环 exit:结束脚本运行 2.while死循环,即当不知道循环多少次时 格式 : while :; do 循环语句 done 3.while从输入重定向文件中每行读取并赋值给read变量 格式:  while read LINE;do 循环语句 done < 路径文件 4.实例脚本 4.1.找出/etc

执行shell脚本时提示bad interpreter:No such file or directory的解决办法

故障现象:在终端直接cd /var正常,在shell脚本中执行则报错.原因是脚本是在windows平台下写的,换行符与Linux不同,造成脚本不能正确执行 出现bad interpreter:No such file or directory(没有那个文件或目录)的原因,是文件格式的问题.这个文件是在Windows下编写的.换行的方式与Unix不一样,但是在vim下面如果不Set一下又完全看不出来. 问题分析:1.将windows 下编写好的SHELL文件,传到linux下执行,提示出错.2.出