如何使用Python获取UN Comtrade数据?

时间:2019-04-23 23:31:52

标签: python json api

我需要使用python的调用从UN Comtrade获取数据,但是当我这样做时,我得到了一个错误。但是,如果我在R中执行相同的操作,则会获得字典。我不明白为什么会这样。

我的Python代码:

import requests
url='http://comtrade.un.org/data/api/get?max=500&type=C&freq=A&px=HS&ps=2018&r=152&p=all&rg=all&cc=851712'
un_data=requests.get(url)
print(un_data.content)

我的R代码:

install.package(jsonlite)
library(jsonlite)
un_data<-fromJSON('http://comtrade.un.org/data/api/get?max=500&type=C&freq=A&px=HS&ps=2018&r=152&p=all&rg=all&cc=851712')
View(un_data)

在我的Python代码中,出现以下错误:

  

发生错误,请联系comtrade@un.org

但是,使用R代码,我得到了包含数据的列表。我希望获得与R相同但在Python中相同的结果。

1 个答案:

答案 0 :(得分:0)

您的请求网址中有轻微的格式错误。不应将您的基本网址设置为http://comtrade.un.org/api/data/get,而应将其设置为http://comtrade.un.org/api/get

这可能与Comtrade API从旧的旧版本过渡到新版本有关,尽管我不确定。无论如何,您都可以在此处测试API调用:UN Comtrade Swagger UI

这是您的reprex的有效版本:

import requests
url='https://comtrade.un.org/api/get?max=500&type=C&freq=A&px=HS&ps=2018&r=152&p=all&rg=all&cc=851712'
un_data=requests.get(url)
print(un_data.content)