我可以从Google Refine调用外部Python函数吗?
我正在研究Google Refine,想加快我的一些数据处理工作——这周才开始用,但我对看到的很多功能都很喜欢。
到目前为止,我最大的疑问是,能不能从Refine里调用外部的Python函数。我知道可以在内部调用jython,但这样无法使用基于C的Python库(比如lxml),而且我有一些其他地方的脚本想要整合进来,不想搞很多复制粘贴或者重写的麻烦。
在Refine中,有哪些选项可以做到这一点呢?我愿意尝试一些创意的办法——我只想要一个稳定、可以重复使用的解决方案。
2 个回答
1
我打算把reclosedev的回答标记为接受,但事情还有一点儿后续。
这个问题的另一个答案是,你可以自己搭建一个基于Python的API。对于这个项目,我成功地在本地服务器上搭建了一个Django应用。花了大约一个小时就把API搭建好了,连接上我现有的库。
虽然比我希望的要麻烦一些,但对于这个项目来说,还是挺合适的,而且没有花太多时间。
2
根据Google Refine Wiki的说法:
lxml这个库在Jython中是不能用的,因为lxml是为CPython(普通的Python)设计的,它有C语言的绑定,所以在只支持Jython/Java的Refine中是无法工作的,因为Refine里面没有内置CPython解释器。
不过,你可以试试Google Refine Python Client Library,这个库可以让你通过编程的方式创建项目和处理数据。