专栏名称: 爬虫俱乐部
Stata技术控,编程技术咨询,数据讨论与分享,编程和实证培训。
目录
相关文章推荐
爱可可-爱生活  ·  【[111星]graphrag-practi ... ·  12 小时前  
爱可可-爱生活  ·  【[261星] ... ·  昨天  
德州晚报  ·  山东3名正厅级干部,联动调整→ ·  昨天  
鲁中晨报  ·  20℃!淄博火箭式升温,但很快要反转 ·  2 天前  
鲁中晨报  ·  省级名单公示!淄博5案例入选 ·  3 天前  
51好读  ›  专栏  ›  爬虫俱乐部

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

爬虫俱乐部  · 公众号  ·  · 2017-09-06 15:04

正文

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

在我们已经基本解决了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 15 Markdown—— 没有做不到,只有想不到!

8.







请到「今天看啥」查看全文