当前位置: 首页 > 面试题库 >

Python请求-从response.text中提取数据

咸玄天
2023-03-14
问题内容

我已经环顾了几天,无法解决这个问题。基本上,我正在将图像上传到服务器并获得ID作为回报,问题是我无法弄清楚如何提取此ID并将其更改为准备好保存到数据库的String。

程式码

url = <Server address>
with open("image.jpg", "rb") as image_file:
    files = {'file': image_file}
    auth = ('<Key>', '<Pass>')
    r = requests.post(url, files=files, auth=auth)

data = r.json()
uploaded = data.get('uploaded')
content_id = uploaded[0]


print r
print r.text
print '--------------'
print str(content_id)

这是我得到的输出

<Response [200]>
{
    "status": "success",
    "uploaded": [
        {
            "filename": "image.jpg",
            "id": "6476edfa1d262ad81181d992da78149d"
        }
     ]
}

--------------
{u'id': u'6476edfa1d262ad81181d992da78149d', u'filename': u'image.jpg'}

问题答案:

您正在接收JSON;您已经使用该response.json()方法将其解码为Python结构:

data = r.json()

您可以将其data['uploaded']视为任何其他Python列表;内容只是一个字典,因此另一个字典键可以获取id值:

data['uploaded'][0]['id']

[0]当您知道上传了多少张图像时,将索引硬编码到此处是安全的。

您可以使用异常处理来检测是否返回了意外情况:

try:
    image_id = data['uploaded'][0]['id']
except (IndexError, KeyError):
    # key or index is missing, handle an unexpected response
    log.error('Unexpected response after uploading image, got %r',
              data)

或者你可以处理data['status']; 这完全取决于您在此使用的API的确切语义。



 类似资料:
  • 我正在使用curl发出一个POST请求,如下所示 但在servlet中,我无法获取任何数据。 有什么建议吗?还有一种在数据内部获取数据的更好方法,如?

  • 因此,我试图构建一个简单的REST API,并希望试用spark,但由于某种原因,我似乎无法提取任何参数。 下面是我的测试endpoint: 现在,如果我试图在http://localhost:4567/hello上用主体{“username”:“bla”}发出请求,那么str变量只是NULL。但是如果我在req上调用body方法,req.body().toString();它确实会将正文{“us

  • 我有登录请求,在请求中我获得了JSESSIONID和XSRF-TOKEN作为Cookie数据,如下所示 如果需要,如何从响应中提取JSESSIONID,以便在注册Cookie中传递该变量 在此处输入图像描述

  • 我想从JAVA中的PKCS10请求中提取subject alternative name(SAN)。 首先,我使用bouncycastle获得PKCS10CertificationRequest,如下所示: 但是,我不知道是否有一种方法可以从认证请求中提取SAN值。 需要帮忙吗?

  • 我在POST请求中从角应用程序发送表单数据到我的Azure函数,这些函数在java中编译。 客户端看起来像这样: 当物品接收到azure功能时 功能的目的是通过firebase向android应用程序发送推送通知。 带有HTTP触发器的azure函数如下所示: 当我运行我得到: ------WebKitFormBoundary2gNlxQx5pqyAeDL3内容处置:表单数据。。。。 我很高兴知道

  • 当我向我的Twilio号码发送特定的消息时,我希望根据该消息采取行动。问题是,返回的是整个请求,而不是正文。 我在这里遵循了Twilio指南来创建webhook:https://www.Twilio.com/docs/sms/tutorials/how-to-receive-and-reply-java,并对其进行了修改,以查看请求主体,将其与我要查找的内容进行比较,然后根据需要做出响应。 问题正