json.dumps and json.loads区分

Posted 奋斗的小鸟yan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json.dumps and json.loads区分相关的知识,希望对你有一定的参考价值。

1. json.dumps:对简单数据类型进行encoding

   encoding:把一个python对象编码转换成json字符串

2. json.loads:处理简单数据类型的decoding转换

 decoding:把Json格式字符串解码转换成python对象

 

 对于简单数据类型(string、unicode、int、float、list、tuple、dict),可以直接处理。

json.dumps方法对简单数据类型encoding:
import json
data = [{\'a\':"A",\'b\':(2,4),\'c\':3.0}]  #list对象
print "DATA:",repr(data)

data_string = json.dumps(data)
print "JSON:",data_string

输出:

DATA: [{\'a\':\'A\',\'c\':3.0,\'b\':(2,4)}] #python的dict类型的数据是没有顺序存储的
JSON: [{"a":"A","c":3.0,"b":[2,4]}]  

JSON的输出结果与DATA很相似,除了一些微妙的变化,如python的元组类型变成了Json的数组

json.loads方法处理简单数据类型的decoding(解码)转换
import json
data = [{\'a\':"A",\'b\':(2,4),\'c\':3.0}]  #list对象

data_string = json.dumps(data)
print "ENCODED:",data_string

decoded = json.loads(data_string)
print "DECODED:",decoded

print "ORIGINAL:",type(data[0][\'b\'])
print "DECODED:",type(decoded[0][\'b\'])

输出:

ENCODED: [{"a": "A", "c": 3.0, "b": [2, 4]}]
DECODED: [{u\'a\': u\'A\', u\'c\': 3.0, u\'b\': [2, 4]}]
ORIGINAL: <type \'tuple\'>
DECODED: <type \'list\'>

解码过程中,json的数组最终转换成了python的list,而不是最初的tuple类型

 

以上是关于json.dumps and json.loads区分的主要内容,如果未能解决你的问题,请参考以下文章

json.loads与json.dumps的区别

json loads/dumps

python 解析json loads dumps

json.dumps与json.loads实例

python中json.loads,dumps,jsonify使用

python中json文件处理涉及的四个函数json.dumps()和json.loads()json.dump()和json.load()的区分