Python 如何将django中的InMemoryUploadedFile转换为flickr API的fomat?

Python 如何将django中的InMemoryUploadedFile转换为flickr API的fomat?,python,django,flickr,Python,Django,Flickr,我有一个类可以将文件上传到Flickr。该文件的类型为 “InMemoryUploadedFile” 我想知道如何将“InMemoryUploadedFile”文件中的数据转换或传递为flickr API的格式 例如: {'photo':('image.jpg',)} 上载API: 错误代码 <?xml version="1.0" encoding="utf-8" ?> <rsp stat="fail"> <err code="4" msg="Filesi

我有一个类可以将文件上传到Flickr。该文件的类型为
“InMemoryUploadedFile”

我想知道如何将“InMemoryUploadedFile”文件中的数据转换或传递为flickr API的格式

例如:

{'photo':('image.jpg',)}
上载API:

错误代码

<?xml version="1.0" encoding="utf-8" ?>
<rsp stat="fail">
    <err code="4" msg="Filesize was zero" />
</rsp>

InMemoryUploadedFile
是一个围绕文件对象的文件。您可以使用
file
属性访问文件对象。因此,在您的示例中,尝试将其传递给Flickr API:

{'photo': my_in_memory_file.file}

如果这不起作用,请编辑您的问题,并围绕您提交请求时使用的代码提供更多详细信息。

InMemoryUploadedFile OnObject中的数据已提取并通过以下方式成功传递给Flickr:

import StringIO
file.seek(0)
file_handle = StringIO.StringIO(file.read())
{'photo': ('image.jpg', file_handle)}

谢谢

谢谢。但是它返回:{'photo':('image.jpg',)}你能用你正在使用的代码更新你的问题吗?输出
{'photo':('image.jpg',)}
的代码和用于将照片发布到API的代码。对于python 3无效。我会小心处理。你可能会想读成块。请注意Django官方文档中的警告:
import StringIO
file.seek(0)
file_handle = StringIO.StringIO(file.read())
{'photo': ('image.jpg', file_handle)}