以下是我做的对于python中json模块的demo

运行效果:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> JSON(JavaScript Object Notation)是一种轻量级的数据交换
格式。易于人阅读和编写,同时也易于机器解析和生成。 在python中,json模块提供的dumps()方法可以对简单的数据进行编码:
import json obj = [['a', 'b', 'c'], 1, 3, 4, 'good', 'boy',(88, 42, 'hongten'), {'name' : 'hongten'}]
encodedjson = json.dumps(obj)
print(repr(obj))
print(encodedjson) #输出:
#[['a', 'b', 'c'], 1, 3, 4, 'good', 'boy', (88, 42, 'hongten'), {'name': 'hongten'}]
#[["a", "b", "c"], 1, 3, 4, "good", "boy", [88, 42, "hongten"], {"name": "hongten"}] objA = [True, False, None]
encodedjsonA = json.dumps(objA)
print(repr(objA))
print(encodedjsonA) #输出:
#[True, False, None]
#[true, false, null] 在json的编码过程中,会存在从python原始类型向json类型的转换过程,具体的转换
如下: python --> json
dict object
list,tuple array
str,unicode string
int,long,float number
True true
False false
None null json转换为python数据类型:
import json
testB = 'hongten'
dump_test = json.dumps(testB)
print(testB)
print(dump_test)
load_test = json.loads(dump_test)
print(load_test) #输出:
#hongten
#"hongten"
#hongten 而json转换为python类型的时候,调用的是json.loads()方法,按照如下规则转换的: json --> python
object dict
array list
string str
number(int) int
number(real) float
true True
false False
null None 排序功能使得存储的数据更加有利于观察,也使得对json输出的对象进行比较:
import json
data1 = {'b':789,'c':456,'a':123}
data2 = {'a':123,'b':789,'c':456}
d1 = json.dumps(data1,sort_keys=True)
d2 = json.dumps(data2)
d3 = json.dumps(data2,sort_keys=True)
print(d1)
print(d2)
print(d3)
print(d1==d2)
print(d1==d3) #输出:
#{"a": 123, "b": 789, "c": 456}
#{"a": 123, "c": 456, "b": 789}
#{"a": 123, "b": 789, "c": 456}
#False
#True indent参数是缩进的意思:
import json
testA = {'name' : 'hongten',
'age' : '',
'gender' : 'M'}
test_dump = json.dumps(testA, sort_keys = True, indent = 4)
print(test_dump) #输出:
#{
# "age": "20",
# "gender": "M",
# "name": "hongten"
#} ##################################################
[['a', 'b', 'c'], 1, 3, 4, 'good', 'boy', (88, 42, 'hongten'), {'name': 'hongten'}]
[["a", "b", "c"], 1, 3, 4, "good", "boy", [88, 42, "hongten"], {"name": "hongten"}]
[True, False, None]
[true, false, null]
hongten
"hongten"
hongten
{"a": 123, "b": 789, "c": 456}
{"b": 789, "c": 456, "a": 123}
{"a": 123, "b": 789, "c": 456}
False
True
{
"age": "",
"gender": "M",
"name": "hongten"
}
>>>

==================================================

代码部分:

==================================================

 #python json

 #Author   :   Hongten
#Mailto : hongtenzone@foxmail.com
#Blog : http://www.cnblogs.com/hongten
#QQ : 648719819
#Version : 1.0
#Create : 2013-08-29 import json __doc__ = '''
JSON(JavaScript Object Notation)是一种轻量级的数据交换
格式。易于人阅读和编写,同时也易于机器解析和生成。 在python中,json模块提供的dumps()方法可以对简单的数据进行编码:
import json obj = [['a', 'b', 'c'], 1, 3, 4, 'good', 'boy',(88, 42, 'hongten'), {'name' : 'hongten'}]
encodedjson = json.dumps(obj)
print(repr(obj))
print(encodedjson) #输出:
#[['a', 'b', 'c'], 1, 3, 4, 'good', 'boy', (88, 42, 'hongten'), {'name': 'hongten'}]
#[["a", "b", "c"], 1, 3, 4, "good", "boy", [88, 42, "hongten"], {"name": "hongten"}] objA = [True, False, None]
encodedjsonA = json.dumps(objA)
print(repr(objA))
print(encodedjsonA) #输出:
#[True, False, None]
#[true, false, null] 在json的编码过程中,会存在从python原始类型向json类型的转换过程,具体的转换
如下: python --> json
dict object
list,tuple array
str,unicode string
int,long,float number
True true
False false
None null json转换为python数据类型:
import json
testB = 'hongten'
dump_test = json.dumps(testB)
print(testB)
print(dump_test)
load_test = json.loads(dump_test)
print(load_test) #输出:
#hongten
#"hongten"
#hongten 而json转换为python类型的时候,调用的是json.loads()方法,按照如下规则转换的: json --> python
object dict
array list
string str
number(int) int
number(real) float
true True
false False
null None 排序功能使得存储的数据更加有利于观察,也使得对json输出的对象进行比较:
import json
data1 = {'b':789,'c':456,'a':123}
data2 = {'a':123,'b':789,'c':456}
d1 = json.dumps(data1,sort_keys=True)
d2 = json.dumps(data2)
d3 = json.dumps(data2,sort_keys=True)
print(d1)
print(d2)
print(d3)
print(d1==d2)
print(d1==d3) #输出:
#{"a": 123, "b": 789, "c": 456}
#{"a": 123, "c": 456, "b": 789}
#{"a": 123, "b": 789, "c": 456}
#False
#True indent参数是缩进的意思:
import json
testA = {'name' : 'hongten',
'age' : '20',
'gender' : 'M'}
test_dump = json.dumps(testA, sort_keys = True, indent = 4)
print(test_dump) #输出:
#{
# "age": "20",
# "gender": "M",
# "name": "hongten"
#} ''' print(__doc__)
print('#' * 50)
#使用json.dumps()方法对简单数据进行编码
obj = [['a', 'b', 'c'], 1, 3, 4, 'good', 'boy',(88, 42, 'hongten'), {'name' : 'hongten'}]
encodedjson = json.dumps(obj)
print(repr(obj))
print(encodedjson) #[['a', 'b', 'c'], 1, 3, 4, 'good', 'boy', (88, 42, 'hongten'), {'name': 'hongten'}]
#[["a", "b", "c"], 1, 3, 4, "good", "boy", [88, 42, "hongten"], {"name": "hongten"}] objA = [True, False, None]
encodedjsonA = json.dumps(objA)
print(repr(objA))
print(encodedjsonA) #[True, False, None]
#[true, false, null] #测试json转换为python类型
testB = 'hongten'
dump_test = json.dumps(testB)
print(testB)
print(dump_test)
load_test = json.loads(dump_test)
print(load_test) #输出:
#hongten
#"hongten"
#hongten #排序测试
data1 = {'b':789,'c':456,'a':123}
data2 = {'a':123,'b':789,'c':456}
d1 = json.dumps(data1,sort_keys=True)
d2 = json.dumps(data2)
d3 = json.dumps(data2,sort_keys=True)
print(d1)
print(d2)
print(d3)
print(d1==d2)
print(d1==d3) #输出:
#{"a": 123, "b": 789, "c": 456}
#{"a": 123, "c": 456, "b": 789}
#{"a": 123, "b": 789, "c": 456}
#False
#True #测试缩进
testA = {'name' : 'hongten',
'age' : '',
'gender' : 'M'}
test_dump = json.dumps(testA, sort_keys = True, indent = 4)
print(test_dump)
#输出:
#{
# "age": "20",
# "gender": "M",
# "name": "hongten"
#}

参考资料:

http://www.cnblogs.com/coser/archive/2011/12/14/2287739.html

python开发_json_一种轻量级的数据交换格式的更多相关文章

  1. JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式

    JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于JavaScript(Standard ECMA-262 3rd Edition - D ...

  2. JSON --- 一种轻量级的数据交换格式

    目录 1. 语法 2. 解析与序列化 JSON.stringify( jsData[, filter, indent] ) JSON.parse( jsonData[, reduction]) JSO ...

  3. 两种常用的数据交换格式:XML和JSON

    不同编程语言之间的数据传输,需要一种通用的数据交换格式,它需要简洁.易于数据储存.快速读取,且独立于各种编程语言.我们往往传输的是文本文件,比如我们都知道的csv(comma seperated va ...

  4. 常用两种数据交换格式之XML和JSON的比较

    目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生: 相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你 ...

  5. XML和JSON两种数据交换格式的比较

    在web开发领域,主要的数据交换格式有XML和JSON,对于在 Ajax开发中,是选择XML还是JSON,一直存在着争议,个人还是比较倾向于JSON的.一般都输出Json不输出xml,原因就是因为 x ...

  6. JSON(JS 对象简谱,一种数据交换格式)

    JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式 存储和表示数据的文本格式 层次结构清晰.简洁 JSON是一个序列化的对象或数组 1.js ...

  7. 数据交换格式XML和JSON对比

    1.简介: XML:extensible markup language,一种类似于HTML的语言,他没有预先定义的标签,使用DTD(document type definition)文档类型定义来组 ...

  8. json 数据交换格式与java

    http://wiki.mbalib.com/wiki/数据交换 数据交换是指为了满足不同信息系统之间数据资源的共享需要,依据一定的原则,采取相应的技术,实现不同信息系统之间数据资源共享的过程. 数据 ...

  9. iOS 中 JSON 数据交换格式

         JSON (JavaScript Object Notation)是一种轻量级的数据交换格式. JSON 的详细教程,能够參见 JSON 中国:http://www.json.org.cn/ ...

随机推荐

  1. C#事件实现文件下载时进度提醒

    C#中的事件是建立在委托的基础上,标准的事件模型应该包括以下几点: 声明一个用于定义事件的委托,这里用系统自带的泛型委托原型EventHandler<TEventArgs>,如:publi ...

  2. aarch64_n2

    nodejs-is-dotfile-1.0.2-2.fc26.noarch.rpm 2017-02-12 00:27 9.5K fedora Mirroring Project nodejs-is-e ...

  3. 乐视mysql面试题【转】

    最近,朋友去乐视面试了mysql DBA,以下是我据整理的乐视mysql面试题答案,供大家参考 1. MYISAM和INNODB的不同?答:主要有以下几点区别:   a)构造上的区别     MyIS ...

  4. vs2012 连接oracle11g 及数据的insert及select 的总结

    下载链接Oracle 11g所需的驱动ODTwithODAC1120320_32bit,下载链接为http://www.oracle.com/technetwork/topics/dotnet/uti ...

  5. 解决eclipse Debug时提示source not found的问题

    解决办法: 选择Change Attached  Source,添加自己的project,clean项目,重启eclipse即可.

  6. (四)MyBatis关系映射

    第一节:一对一关系实现 需要实现一对一的关系,首先我们有两张表,t-addree和t_student. CREATE TABLE `t_address` ( `id` ) NOT NULL AUTO_ ...

  7. ubuntu16.04 安装 caffe cuda 相关流程

    不多说了,经历了很多莫名其妙的错误最后终于安装好了,直接放安装脚本: #!/bin/bash #安装时要注意有些库可能安装失败以及安装caffe有和protobuf相关错误时可能需要重新对protob ...

  8. CF474D. Flowers

    D. Flowers time limit per test 1.5 seconds memory limit per test 256 megabytes input standard input ...

  9. Web前端开发最佳实践(8):还没有给CSS样式排序?其实你可以更专业一些

    前言 CSS样式排序是指按照一定的规则排列CSS样式属性的定义,排序并不会影响CSS样式的功能和性能,只是让代码看起来更加整洁.CSS代码的逻辑性并不强,一般的开发者写CSS样式也很随意,所以如果不借 ...

  10. spring boot 之使用mapstruct

    最近在阅读swagger源码,当看到 springfox.documentation.swagger2.mappers.ModelMapper 类时,无意中看到该类上面使用的 org.mapstruc ...