selenium打开浏览器底层实现原理中的异常2(TypeError: dump() missing 1 required positional argument: 'fp')

代码:

#coding=utf-8
import requests
import json
url='http://127.0.0.1:4444/wd/hub/session'
data = json.dump({
    'Capabilities':{
        'browserName':'Edge'
    }
})
print(requests.post(url,data).json())

结果:

PS E:\30.Study\30.自动化测试\99.零基础入门 Python Web 自动化测试\10.seleniumCodePractice> & "C:/Program Files/Python38/python.exe" "e:/30.Study/30.自动化测试/99.零基础入门 Python Web 自动化测试/10.seleniumCodePractice/202006/requests_open_browser.py"
Traceback (most recent call last):
  File "e:/30.Study/30.自动化测试/99.零基础入门 Python Web 自动化测试/10.seleniumCodePractice/202006/requests_open_browser.py", line 5, in <module>
    data = json.dump({
TypeError: dump() missing 1 required positional argument: 'fp'
PS E:\30.Study\30.自动化测试\99.零基础入门 Python Web 自动化测试\10.seleniumCodePractice>

原因:

这里data是一个多重字典(Capabilites)对象,requests是没办法发送出去的。这时需要利用json.dumps()方法。但是,如果使用的是json.dump()方法,就会报【TypeError: dump() missing 1 required positional argument: 'fp'】这个异常。

对策:

data = json.dump({
    'Capabilities':{
        'browserName':'Edge'
    }
})

==>

data = json.dumps({
    'Capabilities':{
        'browserName':'Edge'
    }
})

思考:

1.为什么调用json.dumps可以而调用json.dump不可以?

2.json.dumps和json.dump有什么不同?

 

posted on 2020-06-17 23:17  shiberhou  阅读(16764)  评论(0编辑  收藏  举报

导航