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 Files\Notepad++\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),写代码时需多多注意.

json操作相关记录的更多相关文章

  1. Git操作相关记录

    1. 本地更新fork来的项目,与原项目同步更新 git remote add upstream <origin_repo_addr> git remote -v git fetch up ...

  2. Linux学习记录--文件IO操作相关系统编程

    文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...

  3. Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类

    本文目录 1.  前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...

  4. 基于SqlSugar的开发框架循序渐进介绍(8)-- 在基类函数封装实现用户操作日志记录

    在我们对数据进行重要修改调整的时候,往往需要跟踪记录好用户操作日志.一般来说,如对重要表记录的插入.修改.删除都需要记录下来,由于用户操作日志会带来一定的额外消耗,因此我们通过配置的方式来决定记录那些 ...

  5. Winform开发框架之权限管理系统改进的经验总结(4)-一行代码实现表操作日志记录

    在前面介绍了几篇关于我的权限系统改进的一些经验总结,本篇继续这一系列主体,介绍如何一行代码实现重要表的操作日志记录.我们知道,在很多业务系统里面,数据是很敏感的,特别对于一些增加.修改.删除等关键的操 ...

  6. ASP.NET 里的 JSON操作

    最近项目中需要用到 JSON操作,google了一下 找到了几个比较好的操作方法.... 一 .使用 mircosoft 提供的 .NET Framework 自带的 json操作方法 1. 使用Ja ...

  7. [Android学习笔记]理解焦点处理原理的相关记录

    焦点处理相关记录 以下所涉及的焦点部分,只是按键移动部分,不明确包含Touch Focus部分 需解决问题 控件的下一个焦点是哪? 分析思路 当用户通过按键(遥控器等)触发焦点切换时,事件指令会通过底 ...

  8. 3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的差别,sql文件导入

     1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date ...

  9. 【转】python 历险记(四)— python 中常用的 json 操作

    [转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...

随机推荐

  1. jenkins+maven+svn实现简单的一键发布

    前言      在安装之前,我想说明一下本文的目的,jenkins的一款持续集成工具,      它可以做的事情很多,其中一个主要的功能就是简化部署流程          回想一下我们的发布流程:   ...

  2. (2)WePHP 控制器与使用模板

    <?php class C_index extends Action { public function __initialize() { echo"自动执行"; } pub ...

  3. linux系统学习(一)

    查看linux版本信息:http://distrowatch.com/ linux根目录下系统文件夹的含义 /boot 该目录下默认存放的是linux的启动文件和内核,一般200M swap交换分区, ...

  4. java中Integer常量池

    我们先看一个关于Integer的例子 public static void main(String[] args) { // TeODO Auto-generated method stu Integ ...

  5. 在 CentOS 上部署 Nginx 环境

    这里的案例主要通过虚拟机( vmware workstation (14) )的方式安装 Center OS 到本地环境 资源下载:  vmware workstation   / CentOS 本次 ...

  6. TangoAreaDescriptionMetaData区域描述元数据

    TangoAreaDescriptionMetaData com.google.atap.tangoservice Class TangoAreaDescriptionMetaData java.la ...

  7. 20145233《网络对抗》Exp7 DNS网络欺诈技术防范

    20145233<网络对抗>Exp7 DNS网络欺诈技术防范 实验问题思考 通常在什么场景下容易受到DNS spoof攻击 公共的无线局域网中,容易受到攻击者的攻击,因为这样就会连入局域网 ...

  8. 【装饰者模式】Decorator Pattern

    装饰者模式,这个模式说我一直记忆深刻的模式,因为Java的IO,我以前总觉得Java的IO是一个类爆炸,自从明白了装饰者模式,Java的IO体系让我觉得非常的可爱,我们现在看看什么是装饰者,然后再来看 ...

  9. iOS AppStore个人开发者账号申请

    一.申请Apple Developer账号 1.注册App ID 1.打开苹果开发者网页,选择Account,注册Apple ID.   2.填写注册信息 3.地区选择China,填写好验证码,点击C ...

  10. JavaScript 类型转换(2)

    隐式类型转换 1. var a = "123"; a++; 这时候会将调用Number("123")将"123"转换成数字类型,然后再自增. ...