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 数组有哪些特点? 什么是编 ...
随机推荐
- 视觉SLAM漫淡(二):图优化理论与g2o的使用
视觉SLAM漫谈(二):图优化理论与g2o的使用 1 前言以及回顾 各位朋友,自从上一篇<视觉SLAM漫谈>写成以来已经有一段时间了.我收到几位热心读者的邮件.有的希望我介绍一下当前 ...
- PHP 5.2 5.3 5.4 5.5 memcache dll扩展
在windows下PHP5.2版本的memcache扩展dll文件好找,5.3的可能不是很好找,这里提供PHP5.2.5.3.5.4.5.5的php_memcache.dll扩展,需要的可以下载. 全 ...
- 网页渗透-wpscan
wpscan –url www.xxx.com #扫描基本信息 wpscan –url www.xxx.com –enumerate p #扫描插件基本信息 wpscan –url www.xxx.c ...
- 公司web安全等级提升
目录 背景介绍 目录 针对国调的初次测试结果 解决方案 二次测试 关于XSS 什么是XSS 基本防御 代码防御 xss代码辑录 说明 参考文章 版本记录 背景介绍 公司的一个web数据展示系统,本来是 ...
- 编写高质量代码改善C#程序的157个建议——建议106:为静态类添加静态构造函数
建议106:为静态类添加静态构造函数 静态类可以拥有构造方法,这就是静态构造方法.静态构造方法与实例构造方法比较有几个自己的特点: 只被执行一次,且在第一次调用类成员之前被运行时执行. 代码无法调用它 ...
- ioctlsocket()函数是干什么用的?它返回值是什么?共有几个参数?它的各个参数是干什么用的?
1. ioctlsocket() 简述: 控制套接口的模式. #include <winsock.h> int PASCAL FAR ioctlsocket( SOCKET s, l ...
- Altera SOPC FrameBuffer系统设计教程
Altera SOPC FrameBuffer系统设计教程 小梅哥编写,未经授权,严禁转载或用于任何商业用途 在嵌入式系统中,LCD屏作为最友好的人机交互方式,被大量的应用到了各个系统中.在基于ARM ...
- Oracle SQl优化总结
对数据库技术的热爱是我唯一的安慰,毕竟这是自己喜欢的事情,还可以做下去. 因为客户项目的需要,我又开始接触Oracle,大部分工作在工作流的优化和业务数据的排查上.为了更好的做这份工作,我有参考过or ...
- 结构(struct)
结构是程序员定义的数据类型,非常类似于类.都包含数据成员和函数成员. 区别:1.类是引用类型,而结构是值类型 2.结构是隐式密封的,也就是结构不能被派生. 结构类型和所有值类型一样,含有自己的数据.需 ...
- centos 查看mysql数据库命令
使用MySQL时,需要了解当前数据库的情况,例如当前的数据库大小.字符集.用户等等.下面总结了一些查看数据库相关信息的命令 1:查看显示所有数据库 mysql> show databases; ...