Python中的FRED REST API

0 投票
1 回答
563 浏览
提问于 2025-04-17 23:06

我们正在使用FRED这个工具,把普通的数据转换成RDF/XML格式。我们在网上找到了JAVA的代码,你能给我们提供PYTHON的代码吗?我找到的JAVA代码是:

import com.sun.jersey.api.client.Client;
import com.sun.jersey.api.client.ClientResponse;
import com.sun.jersey.api.client.WebResource;

public class TestGet
{
    public static void main(String[] args) 
    {
        try 
    {
            Client client = Client.create();
            WebResource webResource = client.resource("http://wit.istc.cnr.it/stlab-tools/fred/");
            ClientResponse response = webResource.queryParam("text", "He is a good boy").accept("application/rdf+xml").get(ClientResponse.class);
            if (response.getStatus() != 200) 
            {
                throw new RuntimeException("Failed : HTTP error code : "+response.getStatus());
            }
            String output = response.getEntity(String.class);
            System.out.println("Output from Server .... \n");
            System.out.println(output);
        } 
    catch (Exception e) 
        {
            e.printStackTrace();
        }
    }
}

1 个回答

1

对于这么简单的情况,urllib2 可能是最简单的选择。

import urllib2
import urllib # needed for url-encoding
par = {"text": "He is a good boy"}
headers={"Accept" : "application/rdf+xml"}
request = urllib2.Request(
    "http://wit.istc.cnr.it/stlab-tools/fred/?" + urllib.urlencode(par),
    headers=headers)
contents = urllib2.urlopen(request).read()
print contents

或者,如果事情变得更复杂,你可能会想用Requests,这个库要酷得多:

import requests
par = {"text": "He is a good boy"}
headers={"Accept" : "application/rdf+xml"}
r = requests.get("http://wit.istc.cnr.it/stlab-tools/fred/",
    data=par, headers=headers)
print r["text"]

撰写回答