我正在尝试将 json 响应从 curl 帖子获取到 json 对象中,以便我可以访问 json 响应中的键/值对。
到目前为止,我的尝试看起来像这样:
import pycurl
import json
c = pycurl.Curl()
#c.setopt(c.VERBOSE, True)
c.setopt(c.URL, 'https://some.place/get/token')
c.setopt(c.FOLLOWLOCATION, True)
post_data = {'id': '1q2w3e4r5t',
'secret': 'abcdefghij'}
# Form data must be provided already urlencoded.
postfields = urlencode(post_data)
# Sets request method to POST,
# Content-Type header to application/x-www-form-urlencoded
# and data to send in request body.
c.setopt(c.POSTFIELDS, postfields)
c.perform()
c.close()
这会将 json 泵出到终端屏幕,但到目前为止,任何"获取"curl 命令返回的实际 json 的尝试都会失败。理想情况下,我不想先将 json repsonse 写入文件,我也不确定我是否能够"监听"stdin - 一旦我做对了,它可能会转换为 AWS lambda 脚本......
我从实际代码中省略了一些函数 - 例如编码等。
您必须创建一个缓冲区并配置Curl
实例以写入该缓冲区。然后,您可以读取它并反序列化它。
import io
buffer = io.BytesIO()
# ... Initialize your Curl() instance as you did
c.setopt(c.WRITEDATA, buffer)
c.perform()
data = json.loads(buffer.getvalue())