jsonio——将dta文件转为json文件

2017-09-06 张学人 爬虫俱乐部 爬虫俱乐部

大大大大大新闻————自公众号推送视频讲解环节以来,深受广大读者朋友的喜爱。近日向我们提问的粉丝也是大幅增加呐!为了便捷管理相关信息,提高工作效率,我们对提问方式做了略微调整哟~提问者需点击推文底部“阅读原文”下载爬虫俱乐部用户问题登记表并按要求填写后发送至邮箱statatraining@163.com,我们会及时为您解答哟~

在我们已经基本解决了json文件向Stata的读入问题后,一个自然而然的问题是:我们能否将已经在stata中处理好了的dta数据转成json文件输出出来呢?这是个很有价值的问题,如果我们想将一份富含价值的数据文件通过互联网分享,json文件无疑是非常具有传播力的。但如果是靠人工编辑,难道要自己一个个粘贴json的逗号和分号?当然不用,jsonio有in就有out,接下来的十分钟请随小编一起看看jsonio的out模式。

jsonio将数据集从stata导出成json文件的命令语法为:

jsonio out [if] [in],what(string)  file()

其中,out代表“输出模式”,what(argument)代表输出的内容类型,这里的argument(参数)有三种:

1

data仅输出数据集里的数据及变量名,输出形式是每一行观测值作为一个json对象,对象中包含该行观测值各个变量与对应的值的键值对,这些json对象(也就是各行观测值信息)组成一个列表(列表的外部用[]表示,每一个元素对应一行观测值)。

2

all输出包含data在内的所有关于该数据集的信息,包括值标签信息(valueLabels),变量标签信息(variableLabels)还有一些关于数据集整体的信息(如该数据集有多少个变量,变量名有哪些等等)。

3

 record输出关于该数据集的变量各方面描述记录,虽然其内容十分详尽(甚至有些冗余),但仅能查看单个观测值的data信息,因此不在本期推文的介绍范围内,有兴趣的读者可以自行调取使用。

一.what(data)——只输出数据集中观测值的数据信息

我们使用auto数据集,输出其data类型的内容(即输出数据集中观测值的数据信息),并且只选择第72,73和74个观测值输出。

sysuse auto,clear

jsonio out in 72/74,what(data)

可以看到,输出的json文件的根对象(最外层的花括号代表根对象)包含三个键值对:键名分别是原地址source,名称name,数据data,而数据的“值”为一个列表,列表的每个元素记录了对应的观测值的相关数据。

二.what(all)——输出所有关于数据集的信息

我们再使用auto数据集,输出其all内容,并且添加file()选项将其保存至auto.json文件中。可以发现,其输出内容不仅包含data,也有关于变量是否为数值型(variableIs String),变量的标签(variableIs String)等信息。

sysuse auto,clear

jsonio out in 72/74,what(all)  file(auto.json)

查看目录中的auto.json文件。

可 以看到,对象 “variableIsString” :{} 描述的是各个变量的值是否为字符串这一信息,是则为true,不是则为false。键值对”variableNames”:[] 描述的是各个变量的名称,键值是一个列表,罗列了所有变量名。而对象”variableLabels”:{}  描述的是各个变量标签是什么这一信息,如”mpg”是”Mileage(mpg)”。

三.jsonio out 的一颗彩蛋

在jsonio out中,我们可以加if或者in限制条件来输出我们指定的观测值信息,一个小彩蛋是:虽然jsonio不能正常读入中文字符,但是输出json文件的键名和健值是可以为中文的,我们将变量price换成中文名“价格”,并且将第四十行观测值的make设置为中文字符串,输出json。

sysuse auto,clear

rename price 价格

replace make=”岁月星火” in 40

jsonio out if rep==1,what(data)

什么?!没看懂!!不要紧!!戳下面,听爬虫小将的详细讲解,也欢迎大家的批评指正哟!


以上就是今天给大家分享的内容了,说得好就赏个铜板呗!有钱的捧个钱场,有人的捧个人场~。另外,我们开通了苹果手机打赏通道,只要扫描下方的二维码,就可以打赏啦!

应广大粉丝要求,爬虫俱乐部的推文公众号打赏功能可以开发票啦,累计打赏超过1000元我们即可给您开具发票,发票类别为“咨询费”。用心做事,只为做您更贴心的小爬虫。第一批发票已经寄到各位小主的手中,大家快来给小爬虫打赏呀~

                        文字编辑:徐露露

技术总编:刘贝贝



往期推文推荐:

1.高校学术大神:你的导师上榜了吗?

2.中国高校财经、管理与综合类期刊灌水排行榜

3.命令sum2docx输出统计量表到docx文件

4.reg2docx报告你的实证结果吧!

5.爬虫俱乐部又出新命令了——wordconvert转换你的word文件

6.putdocx+wordconvert—将实证结果输出到Word.docx)文档

7.Stata 15Markdown——没有做不到,只有想不到!

8.矩阵和宏的故事

9.shelloutopen anything

10.Putpdf--神奇的转换工具



关于我们

微信公众号“爬虫俱乐部”分享实用的stata命令,欢迎转载、打赏。爬虫俱乐部是由李春涛教授领导下的研究生及本科生组成的大数据分析和数据挖掘团队。

此外,欢迎大家踊跃投稿,介绍一些关于stata的数据处理和分析技巧。

投稿邮箱:statatraining@163.com

投稿要求:
1)必须原创,禁止抄袭;
2)必须准确,详细,有例子,有截图;
注意事项:
1)所有投稿都会经过本公众号运营团队成员的审核,审核通过才可录用,一经录用,会在该推文里为作者署名,并有赏金分成。
2)邮件请注明投稿,邮件名称为“投稿”+“推文名称”。
3)应广大读者要求,现开通有偿问答服务,如果大家遇到关于stata分析数据的问题,可以在公众号中提出,只需支付少量赏金,我们会在后期的推文里给予解答。

欢迎关注爬虫俱乐部




微信扫一扫
关注该公众号