CSMAR API 提供了 Python、R、MATLAB 和 Stata 四种接口,为我们从 CSMAR 上下载数据,提供了极大的便利性。API 支持我们在上面四种编程软件中通过直接使用代码下载数据,而不必每次都要进入 CSMAR 官网、点选框格进行数据的筛选和下载。
CSMAR Stata API 的原理是基于 Java 语言开发的 Stata 插件(目前仅支持Windows 系统),通过调用插件相关方法来实现 CSMAR 数据库的数据查询、筛选、下载等功能。
- 用户登录:
login "account" "pwd"
- account:用户名/已验证电话/已验证邮箱
- pwd:密码
- 注意:这里登录的账号,必须是个人账号,不能使用机构账号
- 设置语言:
setLanguage "lang"
- 中文:CH、英文:EN
- 如不设置语言则默认中文
- 查看已购买的数据库名称:
getDbs
- 查看已购买的数据表名称:
getTables "databaseName"
- databaseName:数据库名称,可通过
getDbs
获得
- databaseName:数据库名称,可通过
- 查看已购买数据表中所有的字段:
getFields"tableName"
- tableName:表名称,可通过
getTables "databaseName"
获得
- tableName:表名称,可通过
- 预览数据:
preview "tableName"
- tableName:表名称,可通过
getTables "databaseName"
获得
- tableName:表名称,可通过
- 查询已购买的数据表记录条数:
getDataCount "columns" "condition" "tableName" "startTime" "endTime"
- columns:字段列表
"Cuntrycd,Stkcd,Stknme,Conme"
- condition:条件,类似 SQL 条件语句
-
"Stkcd like'3%'"
, 但不支持order by
(该命令有默认的排序方式)
-
- tableName:表名称,可通过
getTables "databaseName"
查看 - startTime 和 endTime:下载数据时间区间的开始时间和结束时间
- 时间关键字参数(非必填,如需填写格式为:YYYY-MM-DD)
- columns:字段列表
- 查询已购买的数据表数据:
getData "columns" "condition" "tableName" "startTime" "endTime"
- 一次最多只能加载 20 万条记录
- condition:如超过 20 万记录的数据可使用 limit 进行分页查询,假设是 40 万条,需分两次进行条件设置
- 第一次:
"Stkcd like'3%' limit 0,200000"
- 第二次:
"Stkcd like'3%' limit 200000,200000"
- 第一次:
- 打包数据:
pack "columns" "condition" "tableName" "startTime" "endTime"
- 该命令返回一个唯一标识:
signCode
- 获取 Stata 下载记录详情:
getRecord "signCode"
-
signCode
是通过调用pack
命令获取,非必填,为空时返回所有通过 Stata 下载的记录
-
- 下载数据:
copy "sourcePath""targetPath"
- sourcePath:文件来源路径通过
getRecord "signCode"
中的 filepath 获得 - targetPath:文件存放路径(电脑已有目录,压缩包名称可根据实际需求而定)
- sourcePath:文件来源路径通过