AttributeError:模块“ requests”没有属性“ open”

时间:2019-06-05 22:23:19

标签: python python-requests

我收到此错误

  

AttributeError:模块'requests'没有属性'open'

当尝试运行以下脚本时:

import requests

headers = {
    'Content-Type': 'application/json',
}

params = (
    ('key', 'mykeyhere'),
)

data = open('request.json')
response = requests.post('https://www.googleapis.com/qpxExpress/v1/trips/search', headers=headers, params=params, data=data)

我想念什么吗?

3 个答案:

答案 0 :(得分:0)

内置的Python函数open 返回文件对象,而requests.post中的data参数需要字典,或者至少是文件对象以外的东西。端点将期望使用JSON编码的对象,但我认为您在发送文本时看到的错误不会显示为Python AttributeError。
您可以尝试使用data=data.read()之类的方法,看看是否可以解决您的问题。

...但是这与您提到的错误无关,因此我可能缺少一些信息。

答案 1 :(得分:0)

我收到错误消息是因为我将文件命名为request.py。更改文件名后,没有更多错误。

答案 2 :(得分:-1)

import requests
import json

headers = {
    'Content-Type': 'application/json',
}

params = (
    ('key', 'mykeyhere'),
)

with open('request.json') as file:
    data = json.load(file) # Now you have proper json instead of an io object 

response = requests.post('https://www.googleapis.com/qpxExpress/v1/trips/search', headers=headers, params=params, data=data)