Python:如何从文件的XML-RP块中获取数据

2024-07-04 05:58:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个使用Python中的opensubtitleapi下载电影字幕的软件。在

API实现XML-RPC协议。根据API documentation,要从站点数据库下载字幕,使用以下方法:

array DownloadSubtitles( $token, array($IDSubtitleFile, $IDSubtitleFile,...) )

其输出为:

^{pr2}$

[idsubtitle]和[subtitle]中的[idsubtitle]是数据。在

我面临的问题是,每当我下载字幕时:

idsubtitlefile='513de0ea27d63b9d631d769a492d72dc'
token='a1t49trievitmjda4ija7dif44'
xmlrpclib.DownloadSubtitles(token,[(idsubtitlefile)] )

我得到这样的结果:

[{'data': 'H4sIAAAAAAAAAwMAAAAAAAAAAAA=',\      
   'idsubtitlefile':'513de0ea27d63b9d631d769a492d72dc'}] 

在这里,data值应该是base64编码的二进制字幕数据,但是为什么这么少的数据是字幕呢。在

我想不知怎么的,数据必须从服务器上分块下载,或者可能我遗漏了什么。在


Tags: 数据tokenapidata软件电影xmlrpc
1条回答
网友
1楼 · 发布于 2024-07-04 05:58:19

只是想稍微放大一下@Martijn的评论-响应确实是一个空文件,您可以使用如下代码进行验证:

>>> raw = 'H4sIAAAAAAAAAwMAAAAAAAAAAAA='
>>> import base64
>>> decoded = base64.b64decode(raw)
>>> import zlib
>>> decompressed_data=zlib.decompress(decoded, 16+zlib.MAX_WBITS)
>>> print decompressed_data

>>> len(decompressed_data)
0

在API文档的基础上,没有什么可以说明你需要更多的东西。你能用一个已知有副标题的例子再试一次吗?你在检查错误吗? http://trac.opensubtitles.org/projects/opensubtitles/wiki/XmlRpcStatusCode

编辑:这里列出了一些开源的Python API用户,以防他们有所帮助: http://trac.opensubtitles.org/projects/opensubtitles/wiki/ProgramsUsingAPI

相关问题 更多 >

    热门问题