I have been looking around for a few days now and cannot figure this out. Basically I'm uploading an image to a server and get an ID in return, the problem is I cannot figure out how to extract this ID and change it into a String ready to be saved into a database.
Program Code
url =
with open("image.jpg", "rb") as image_file:
files = {'file': image_file}
auth = ('', '')
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)
And here is the output I get
{
"status": "success",
"uploaded": [
{
"filename": "image.jpg",
"id": "6476edfa1d262ad81181d992da78149d"
}
]
}
--------------
{u'id': u'6476edfa1d262ad81181d992da78149d', u'filename': u'image.jpg'}
解决方案
You are receiving JSON; you already use the response.json() method to decode that to a Python structure:
data = r.json()
You can treat data['uploaded'] as any other Python list; the content is just the one dictionary, so another dictionary key to get the id value:
data['uploaded'][0]['id']
It is safe to hardcode the index to [0] here as you know how many images you uploaded.
You could use exception handling to detect if anything unexpected was returned:
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)
or you could handle data['status']; it all depends on the exact semantics of the API you are using here.
本文介绍了一种从服务器响应中提取上传图片ID的方法,并将其转换为字符串以便保存到数据库的过程。通过使用Python的requests库进行HTTP请求,解析返回的JSON数据,最终获取到了所需的图片ID。
6303

被折叠的 条评论
为什么被折叠?



