- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我对ckan有一些疑问:
如何:
而且我需要在ckan网站上注册才能查询数据吗?
我使用的是 Pyhton 3.6.1
编辑 2:我尝试过以下代码:
import urllib
url = 'http://dados.cvm.gov.br/api/action/datastore_search?resource_id=92741280-58fc-446b-b436-931faaca4fb4&q=CNPJ_FUNDO:11.286.399/0001-35'
fileobj = urllib.request.urlopen(url)
print(fileobj.read())
但是,结果是这样的:
b'{"help": "http://dados.cvm.gov.br/api/3/action/help_show?name=datastore_search", "success": true, "result": {"resource_id": "92741280-58fc-446b-b436-931faaca4fb4", "fields": [{"type": "int4", "id": "_id"}, {"type": "text", "id": "CNPJ_FUNDO"}, {"type": "timestamp", "id": "DT_COMPTC"}, {"type": "numeric", "id": "VL_TOTAL"}, {"type": "numeric", "id": "VL_QUOTA"}, {"type": "numeric", "id": "VL_PATRIM_LIQ"}, {"type": "numeric", "id": "CAPTC_DIA"}, {"type": "numeric", "id": "RESG_DIA"}, {"type": "numeric", "id": "NR_COTST"}, {"type": "int8", "id": "_full_count"}, {"type": "float4", "id": "rank"}], "q": "CNPJ_FUNDO:11.286.399/0001-35", "records": [], "_links": {"start": "/api/action/datastore_search?q=CNPJ_FUNDO%3A11.286.399%2F0001-35&resource_id=92741280-58fc-446b-b436-931faaca4fb4", "next": "/api/action/datastore_search?q=CNPJ_FUNDO%3A11.286.399%2F0001-35&offset=100&resource_id=92741280-58fc-446b-b436-931faaca4fb4"}}}'
我需要像 this image 这样的结果
最佳答案
- load a CKAN dataset from web
您链接的网站在链接“API de Dados”中有一个 Python 示例:
import urllib
url = 'http://dados.cvm.gov.br/api/action/datastore_search?resource_id=92741280-58fc-446b-b436-931faaca4fb4&limit=5&q=title:jones'
fileobj = urllib.urlopen(url)
print fileobj.read()
- transform this dataset into a pandas dataframe
像处理任何 JSON 数据集一样,解析它并加载到数据帧中(这里没有任何特定于 ckan 的内容):
>>> import pandas as pd
>>> import json
>>> response = json.loads(fileobj.read())
>>> pd.DataFrame(response['result']['records'])
CAPTC_DIA CNPJ_FUNDO DT_COMPTC NR_COTST RESG_DIA \
0 0.00 00.017.024/0001-53 2017-07-03T00:00:00 1 0.00
1 0.00 00.017.024/0001-53 2017-07-04T00:00:00 1 0.00
2 0.00 00.017.024/0001-53 2017-07-05T00:00:00 1 0.00
3 0.00 00.017.024/0001-53 2017-07-06T00:00:00 1 0.00
4 0.00 00.017.024/0001-53 2017-07-07T00:00:00 1 0.00
VL_PATRIM_LIQ VL_QUOTA VL_TOTAL _id
0 1111752.99 25.249352000000 1111831.24 1
1 1112087.29 25.256944400000 1112268.26 2
2 1112415.28 25.264393500000 1112716.06 3
3 1112754.06 25.272087600000 1113165.75 4
4 1113096.62 25.279867600000 1113293.06 5
And i need have a register in ckan website to query the data?
您不需要在您链接的网站上注册,我无需注册即可检索数据。我更喜欢使用 requests
库:
import requests
import pandas as pd
params = params={
'resource_id': '92741280-58fc-446b-b436-931faaca4fb4',
'limit': 5,
}
url = 'http://dados.cvm.gov.br/api/action/datastore_search'
r = requests.get(url, params=params).json()
df = pd.DataFrame(r['result']['records'])
看起来像 limit
and offset
parameters probably behave like in SQL 。您可能必须将列转换为数字/日期类型,同样,这并不是 ckan 特有的,您可以在 pandas 文档中找到有关如何执行此操作的答案。
>>> df.describe()
_id
count 5.000000
mean 3.000000
std 1.581139
min 1.000000
25% 2.000000
50% 3.000000
75% 4.000000
max 5.000000
转换很容易:
>>> for col in ('CAPTC_DIA', 'NR_COTST', 'RESG_DIA', 'VL_PATRIM_LIQ', 'VL_QUOTA', 'VL_TOTAL'):
... df[col] = pd.to_numeric(df[col])
>>> df['DT_COMPTC'] = pd.to_datetime(df['DT_COMPTC'])
>>> df.describe()
CAPTC_DIA NR_COTST RESG_DIA VL_PATRIM_LIQ VL_QUOTA VL_TOTAL \
count 5.0 5.0 5.0 5.000000e+00 5.000000 5.000000e+00
mean 0.0 1.0 0.0 1.112421e+06 25.264529 1.112655e+06
std 0.0 0.0 0.0 5.303356e+02 0.012045 6.123444e+02
min 0.0 1.0 0.0 1.111753e+06 25.249352 1.111831e+06
25% 0.0 1.0 0.0 1.112087e+06 25.256944 1.112268e+06
50% 0.0 1.0 0.0 1.112415e+06 25.264394 1.112716e+06
75% 0.0 1.0 0.0 1.112754e+06 25.272088 1.113166e+06
max 0.0 1.0 0.0 1.113097e+06 25.279868 1.113293e+06
_id
count 5.000000
mean 3.000000
std 1.581139
min 1.000000
25% 2.000000
50% 3.000000
75% 4.000000
max 5.000000
关于python - 加载CKAN数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45418664/
是否可以在 CKAN 中启用多语言内容?我知道 CKAN 界面是多语言的。但我们希望网站以与网站访问者选择的界面语言相匹配的语言显示内容(数据集名称/描述、资源名称等)。 例如,数据集发布者创建了一个
如何找到我正在运行的 CKAN 版本?最好以编程方式或通过某种机器可读的方式? 有什么建议么? 最佳答案 旧版本的 CKAN 将版本显示在页面的页脚上。从 CKAN 2.0 开始,版本号显示在源代码中
我想知道 CKAN 在哪里存储上传到数据存储/文件存储的文件。 刚刚搭建好环境,尝试在/var/lib/ckan/default/storage上搜索,但我只能找到图标。我在工具中上传的 CSV 文件
我一直在阅读这里的文档,为 CKAN 中的数据集和资源添加一些额外的字段: http://docs.ckan.org/en/latest/extensions/adding-custom-fields
我必须创建一个多页表单,想知道我是否可以按照 Pylons 文档中关于辅助函数的说明在 CKAN 中构建表单? CKAN 中有创建表单的文档吗?请提出最佳方法。 最佳答案 CKAN 表单通常会导入一些
我可以将附加内容附加到 CKAN 资源吗?我注意到 ckan.model.Resource有一个 extras属性,因此我尝试使用以下内容制作资源: resource = { "package
我想在我的 CKAN 安装中创建子组/子组,并且在官方 ckan 文档中找到了它的提及,但没有它是如何实现的。有人能告诉我这是否可能吗,如果可能的话,它是如何完成的。 非常感谢 阿克斯姆 最佳答案 C
我需要在 CKAN 2.5 中创建一个资源 View ,但是所有 API documentation说是: ckan.logic.action.create.resource_view_create(
对 MapQuest 旧 map 的直接图 block 访问已停止。现在我们需要在开发者网络上注册计划。 如何在其他中配置MapQuest帐户以在ckan平台中使用它? 现在我的所有 ckan 站点中
使用 CKAN API 我可以删除一个包(将其标记为非事件)。但是如何使用 API 而不是管理界面来清除它(从数据库中删除它)? 最佳答案 CKAN API 目前不支持清除垃圾,但作为管理员,您可以使
我想知道我是否可以在自定义 CKAN 扩展中拥有 Controller 。如果可以,那么如何创建到这些 Controller 的路由以及这些 Controller 中的操作函数? 谢谢, PK 最佳答
我们正在从 CKAN 2.6.3 升级到 2.7.2。我们有一个 2.7.2 的测试安装,我注意到一个新功能是数据字典,它看起来非常有用! 是否有关于使用数据字典功能的任何文档?我可以看到它如何自动检
是否可以为私有(private)数据集启用事件流?我一直在测试,事件流仅针对公共(public)数据集显示。 我检查了/usr/lib/ckan/default/src/ckan/ckan/lib/a
我第一次安装 CKAN 2.2 时,我添加了 Filestore 扩展来上传文件。但是当我尝试预览时,出现错误。在遵循其他一些建议使用数据存储的帖子之后(因为它被用来代替数据代理),我重新安装了 CK
我们想要做的是为我们的实验室成员创建一个本地数据存储库来组织、搜索、访问、编目、引用我们的数据等。我觉得 CKAN 可以做所有这些事情;但是,我不确定它将如何处理我们实际拥有的数据的这些任务(我可能是
曾经是我的resource creation problem has been solved , 我还有 demo.ckan.org 的另一个问题。 创建资源后,我创建了一个数据存储并更新了一些数据:
在CKAN中添加数据有三个选项“链接到文件”、“链接到API”、“上传文件”。 “链接到文件”和“链接到 API”这两个选项有什么区别? 最佳答案 “链接到文件”旨在用于链接到实际数据文件的 URL,
我正在使用 demo.ckan.org 进行一些测试,它正在运行 API 的 2.4 版本,AFAIK。除了资源创建之外,一切都运行良好(组织和数据集创建)。 resource_create 方法始终
我正在使用 CKAN 2.2 版并尝试自动执行数据集创建和资源上传。我似乎无法使用 python requests 库创建数据集。我收到 400 错误代码。代码: import requests, j
当尝试将文件上传到 CKAN 中的数据集时,我在 Web 界面中收到此错误: Failed to get credentials for storage upload. Upload cannot p
我是一名优秀的程序员,十分优秀!