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 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操作相关记录的更多相关文章
- Git操作相关记录
1. 本地更新fork来的项目,与原项目同步更新 git remote add upstream <origin_repo_addr> git remote -v git fetch up ...
- Linux学习记录--文件IO操作相关系统编程
文件IO操作相关系统编程 这里主要说两套IO操作接口,各自是: POSIX标准 read|write接口.函数定义在#include<unistd.h> ISO C标准 fread|fwr ...
- Asp.Net Core 2.0 项目实战(8)Core下缓存操作、序列化操作、JSON操作等Helper集合类
本文目录 1. 前沿 2.CacheHelper基于Microsoft.Extensions.Caching.Memory封装 3.XmlHelper快速操作xml文档 4.Serializatio ...
- 基于SqlSugar的开发框架循序渐进介绍(8)-- 在基类函数封装实现用户操作日志记录
在我们对数据进行重要修改调整的时候,往往需要跟踪记录好用户操作日志.一般来说,如对重要表记录的插入.修改.删除都需要记录下来,由于用户操作日志会带来一定的额外消耗,因此我们通过配置的方式来决定记录那些 ...
- Winform开发框架之权限管理系统改进的经验总结(4)-一行代码实现表操作日志记录
在前面介绍了几篇关于我的权限系统改进的一些经验总结,本篇继续这一系列主体,介绍如何一行代码实现重要表的操作日志记录.我们知道,在很多业务系统里面,数据是很敏感的,特别对于一些增加.修改.删除等关键的操 ...
- ASP.NET 里的 JSON操作
最近项目中需要用到 JSON操作,google了一下 找到了几个比较好的操作方法.... 一 .使用 mircosoft 提供的 .NET Framework 自带的 json操作方法 1. 使用Ja ...
- [Android学习笔记]理解焦点处理原理的相关记录
焦点处理相关记录 以下所涉及的焦点部分,只是按键移动部分,不明确包含Touch Focus部分 需解决问题 控件的下一个焦点是哪? 分析思路 当用户通过按键(遥控器等)触发焦点切换时,事件指令会通过底 ...
- 3.数据库操作相关术语,Oracle认证,insert into,批量插入,update tablename set,delete和truncate的差别,sql文件导入
1相关术语 语句 含义 操作 DML语句 (Data Manipulation Language) 数据库操作语言 insert update delete select DDL语言 (Date ...
- 【转】python 历险记(四)— python 中常用的 json 操作
[转]python 历险记(四)— python 中常用的 json 操作 目录 引言 基础知识 什么是 JSON? JSON 的语法 JSON 对象有哪些特点? JSON 数组有哪些特点? 什么是编 ...
随机推荐
- jenkins+maven+svn实现简单的一键发布
前言 在安装之前,我想说明一下本文的目的,jenkins的一款持续集成工具, 它可以做的事情很多,其中一个主要的功能就是简化部署流程 回想一下我们的发布流程: ...
- (2)WePHP 控制器与使用模板
<?php class C_index extends Action { public function __initialize() { echo"自动执行"; } pub ...
- linux系统学习(一)
查看linux版本信息:http://distrowatch.com/ linux根目录下系统文件夹的含义 /boot 该目录下默认存放的是linux的启动文件和内核,一般200M swap交换分区, ...
- java中Integer常量池
我们先看一个关于Integer的例子 public static void main(String[] args) { // TeODO Auto-generated method stu Integ ...
- 在 CentOS 上部署 Nginx 环境
这里的案例主要通过虚拟机( vmware workstation (14) )的方式安装 Center OS 到本地环境 资源下载: vmware workstation / CentOS 本次 ...
- TangoAreaDescriptionMetaData区域描述元数据
TangoAreaDescriptionMetaData com.google.atap.tangoservice Class TangoAreaDescriptionMetaData java.la ...
- 20145233《网络对抗》Exp7 DNS网络欺诈技术防范
20145233<网络对抗>Exp7 DNS网络欺诈技术防范 实验问题思考 通常在什么场景下容易受到DNS spoof攻击 公共的无线局域网中,容易受到攻击者的攻击,因为这样就会连入局域网 ...
- 【装饰者模式】Decorator Pattern
装饰者模式,这个模式说我一直记忆深刻的模式,因为Java的IO,我以前总觉得Java的IO是一个类爆炸,自从明白了装饰者模式,Java的IO体系让我觉得非常的可爱,我们现在看看什么是装饰者,然后再来看 ...
- iOS AppStore个人开发者账号申请
一.申请Apple Developer账号 1.注册App ID 1.打开苹果开发者网页,选择Account,注册Apple ID. 2.填写注册信息 3.地区选择China,填写好验证码,点击C ...
- JavaScript 类型转换(2)
隐式类型转换 1. var a = "123"; a++; 这时候会将调用Number("123")将"123"转换成数字类型,然后再自增. ...