Python:如何通过xml-rpc从文件块中获取数据
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python:如何通过xml-rpc从文件块中获取数据,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1533字,纯文字阅读大概需要3分钟。
内容图文
![Python:如何通过xml-rpc从文件块中获取数据](/upload/InfoBanner/zyjiaocheng/659/9d1469614afc42049c6f979b1f3809ef.jpg)
我正在创建一个使用Python中的OpenSubtitle API下载电影字幕的软件.
该API实现XML-RPC协议.根据API documentation,要从站点数据库下载字幕,请使用以下方法:
array DownloadSubtitles( $token, array($IDSubtitleFile, $IDSubtitleFile,...) )
其输出为:
[data] => Array
(
[0] => Array
(
[idsubtitlefile] => 10
[data] => MQ0KMDA6MDA6MzgsMzAwIC0tPiAwMDowMDo0MSwwMDA...
)
[1] => Array
(
[idsubtitlefile] => 20
[data] => MQ0KMDA6MDA6MjYsMjgzIC0tPiAwMD...
)
其中[idsubtitlefile]是subtitle_id,[data]是base64和gzip格式的字幕字节.
每当我下载字幕时,我都会面临的问题是:
idsubtitlefile='513de0ea27d63b9d631d769a492d72dc'
token='a1t49trievitmjda4ija7dif44'
xmlrpclib.DownloadSubtitles(token,[(idsubtitlefile)] )
我得到这样的结果:
[{'data': 'H4sIAAAAAAAAAwMAAAAAAAAAAAA=',\
'idsubtitlefile':'513de0ea27d63b9d631d769a492d72dc'}]
在这里,数据值应该是base64编码的二进制字幕数据,但是这么少的数据怎么可能是字幕.
我认为必须以某种方式从服务器上大块下载数据,或者也许我丢失了一些东西.
解决方法:
只是稍微放大@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
内容总结
以上是互联网集市为您收集整理的Python:如何通过xml-rpc从文件块中获取数据全部内容,希望文章能够帮你解决Python:如何通过xml-rpc从文件块中获取数据所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。