json操作相关记录

json是javascript衍生的数据表示法,现在许多数据的处理都使用json.

平时用到的与json结构相似的有很多,如mongodb数据库,python的字典等.核心思想就是键值对.

json的基本数据结构包括对象和数组,对象用{},里面是键值对,数组用[],可包含多个对象;json在python中解析后,对象出来是字典,数组是列表.

json简单操作:

----------格式化----------

windows可以用notepad++,有json Viewer插件,可以点击"插件(P)"->"Plugin Manager"->"Show Plugin Manager".在弹出的窗口里面找到"JSON Viewer"安装;

没有的话需要下载安装,地址  https://sourceforge.net/projects/nppjsonviewer/  .将下载好的文件解压,找到  NPPJSONViewer.dll  这个文件,拷贝到notepad++的plugins文件夹下,

例如我的notepad++安装在C盘,我的插件地址是"C:Program FilesNotepad++plugins".

安装好该插件后将json文件用notepad++打开.

先选中需要格式化的json文本(一定要选中),如果格式化整个文件直接ctrl+a就好了.

然后依次点击"插件(P)"->"JSON Viewer"->"Format JSON ",即可看到文本格式的变化,需要保存的记得ctrl+s.

 

 

ubuntu可以用jq命令,需要先安装$apt install jq.

需要查看某个json文件的格式化的,直接在命令行使用jq . [filename]

 

也可以直接使用网页解析json,访问json.cn(或者其他在线解析网站),将需要格式化的文本复制到框框即可.

----------数据处理----------

mongodb直接导入json文件
mongoimport -d [database] -c [Collection] <file>

其中database是数据库,collection是集合,file是文件名.

例如,我将test.json导入数据库test中的mytest集合:

使用--jsonArray是因为我的文件是json数组,直接导入会报错;最外层是对象的json文件不用--jsonArray即可导入.

数据库和集合都可以是不存在的,mongo会自动创建.

 

python处理json数据.

在数据传输中json都是纯文本的形式.在python中即作为字符串存取.

使用json模块的loads和dumps转换json.

# /usr/bin/python
# encoding: utf-8

import json

with open('test.json','r') as f:
    jsn = f.read()

# 将json字符串转换为对应的列表或字典
jsn = json.loads(jsn)
print type(jsn)
print jsn

# 将对象转换为字符串
str = json.dumps(jsn)
print type(str)
print str

 

ubuntu中仍使用上文所说的jq命令处理json文件,安装好后,输入jq可查看使用方法.

基本用法:

jq [options] <jq filter> [file...]

基本的filter有  

  .    表示对象

  [ ]     表示数组

  .key  可以通过key输出值

这些都会直接输出到屏幕,要输出到文件,使用 '>' 定向到文件即可

如,将test.json的name字段输出到name文件中: jq .[].name test.json > name

 

json更适用于已知结构的数据.在使用中比较方便,结合mongodb,效率可观.

在python的使用中仍会遇到一些格式上的问题(特别是python2),写代码时需多多注意.

原文地址:https://www.cnblogs.com/masako/p/6867583.html