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

标签 python json api

我需要从 UN Comtrade 获取数据使用来自 python 的调用,但是当我这样做时出现错误。然而,如果我在 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 代码中,出现以下错误:

An error has occurred, please contact [email protected]

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

最佳答案

您的请求 URL 中存在轻微错误。您的基本网址不应设置为 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)

关于python - 如何使用Python获取UN Comtrade数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55820727/

相关文章:

python - 如何检查列是否包含列表

ios - 没有 CoreData 的 RestKit 侧载 JSON 关联

PHP 检测传入请求是否使用 https

Javascript 两次 api 调用

python - 如何将 'insert' 放入空列表中的非零位置?

java - 为什么在 android 上使用 cryptography.io 和 java 完成的 RSA 身份验证不能一起工作?

python - VIM:在 python 模式下使用 python3 解释器

Play scala 2.x 中的 JSON 读取组合器不适用于 Map[String, _]

java - ObjectMapper writeValueAsString() 方法将字段名称转换为小写

api - 是否有工具可以在文档中定义 Rest API?