Python对Json的操作

Json是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,‘名称/值’对的集合数据结构


python中对简单数据类型的编码(encoding)解析(decoding)

mport json

class Person(object):
	def __init__(self,name,age):
		self.name=name
		self.age=age


if __name__=='__main__':
	obj=[[1,2,3],123,123.123,'abc',{'key1':(1,2,3),'key2':(4,5,6)}]
	#对数据进行encode
	encodejson=json.dumps(obj,'asdf')
	print(repr(obj))
	print(encodejson)

	#对数据进行decode
	#json.loads()
	decodejson=json.loads(encodejson)
	print(decodejson)
#输出:
#       [[1, 2, 3], 123, 123.123, 'abc', {'key1': (1, 2, 3), 'key2': (4, 5, 6)}]
#       [[1, 2, 3], 123, 123.123, "abc", {"key1": [1, 2, 3], "key2": [4, 5, 6]}]
#       [[1, 2, 3], 123, 123.123, 'abc', {'key1': [1, 2, 3], 'key2': [4, 5, 6]}]




注意到数据编码解析前后数据的变化

更详细的一些基本操作:http://docs.python.org/library/json.html


Json数据变化过程对照表(来至库源码)

    +---------------+-------------------+                 
    | JSON          | Python            |
    +===============+===================+
    | object        | dict              |
    +---------------+-------------------+
    | array         | list              |
    +---------------+-------------------+
    | string        | str               |
    +---------------+-------------------+
    | number (int)  | int               |
    +---------------+-------------------+
    | number (real) | float             |
    +---------------+-------------------+
    | true          | True              |
    +---------------+-------------------+
    | false         | False             |
    +---------------+-------------------+
    | null          | None              |
    +---------------+-------------------+

    +-------------------+---------------+
    | Python            | JSON          |
    +===================+===============+
    | dict              | object        |
    +-------------------+---------------+
    | list, tuple       | array         |
    +-------------------+---------------+
    | str               | string        |
    +-------------------+---------------+
    | int, float        | number        |
    +-------------------+---------------+
    | True              | true          |
    +-------------------+---------------+
    | False             | false         |
    +-------------------+---------------+
    | None              | null          |
    +-------------------+---------------+


这是简单的数据处理,当然我们也可以处理自己定义的数据。如学生、老师等对象





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Python操作JSON的示例代码: 1. 将Python对象编码为JSON字符串 ```python import json # 将字典编码为JSON字符串 dict1 = {'A': 'a', 'B': 'b', 'C': 'c'} en_json = json.dumps(dict1) print(type(en_json), en_json) # 将列表编码为JSON字符串 lst = ['aa', 'bb', 'cc'] lst_json = json.dumps(lst) print(type(lst_json), lst_json) # 将字符串编码为JSON字符串 s = 'I love you!' s_json = json.dumps(s) print(type(s_json), s_json) # 注意:集合类型的对象是不可以JSON序列化的 _set = {'aaa', 'bbb'} # set_json = json.dumps(_set) # 报错:TypeError: Object of type set is not JSON serializable ``` 2. 将JSON字符串解码为Python对象 ```python import json # 将JSON字符串解码为字典 en_json = '{"A": "a", "B": "b", "C": "c"}' de_json = json.loads(en_json) print(type(de_json), de_json) # 将JSON字符串解码为列表 lst_json = '["aa", "bb", "cc"]' de_json = json.loads(lst_json) print(type(de_json), de_json) # 将JSON字符串解码为字符串 s_json = '"I love you!"' de_json = json.loads(s_json) print(type(de_json), de_json) # 注意:集合类型的对象是不可以JSON序列化的 # set_json = '{"aaa", "bbb"}' # de_json = json.loads(set_json) # 报错:Expecting property name enclosed in double quotes: line 1 column 2 (char 1) ``` 3. 使用eval()解析JSON字符串(不推荐使用) ```python import json # 使用eval()解析JSON字符串 en_json = '{"X": "x", "Y": "y", "Z": "z"}' de_json = eval(en_json) print(type(de_json), de_json) ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值