Python的json数据操作

json介绍

json的元素有对象(object),数组(array),字符串(str),数字(number),布尔量(true,false),和空值(null)

json对象

json对象的特征是以大括号开始和结尾,内部元素为key-value的键值对,也可以为空,但是这个空是什么都不写,而不是json数值的空,{}单独的一对大括号,是一个空的json对象,如果写成{null},是不符合json规范的。

key一定是字符串类型的,value可以是上述元素的任意一种,中间有":"隔开,是英文标点的冒号,使用过程中注意不要用成汉语。键值对之间使用","逗号分隔,下面是一些关于json对象的例子

//空的json对象
{

}

//单键值对的json对象
{
    "test":null
}
{
    "test":1
}
{
    "test":"str"
}
{
    "test":false
}
{
    "test":{}
}
{
    "test":[]
}
//多键值对的json对象
{
    "object":{},
    "array":[],
    "number(int)": 1,
    "number(real)":1.0,
    "string":"str",
    "bool":true,
    "none":null
}

json数组

josn数组中的元素为单纯的json元素,不牵涉key-value对,只是单纯的value,各个value之间使用逗号隔开,同样不写元素时,为空

//空的json数组
[]

//非空的json数组
//这个json数组不是空的,内部有一个元素,元素的值为null
[null]

//元素为json对象
[{}]

//元素为json数组
[[]]

//元素为整形数字
[1]

//元素为实型数字
[1.0]
[1e10]
[1.45456546e2]

//布尔值
[true]

//字符串
["str"]


[null,{},[],1,"str"]

python数据结构介绍

上面介绍完json以后,大家有没有觉得是否有点眼熟呢,key-value,这不就是字典,所谓的json数组,不就是可以任意塞对象的列表。

因此,python的json操作,就是把json转化成python自己的数据结构进行处理。

import json

json_obj_str = "{\"test\":[]}"

json_obj = json.loads(json_obj_str)

print(type(json_obj))#这一行输出的是<class 'dict'>,也就是字典

print(type(json_obj["test"]))#这一行输出的是<class 'list'>,也就是列表



json_arr_str = "[{}]"

josn_arr = json.loads(json_arr_str)

print(type(json_arr))#这一行输出的是<class 'list'>,也就是列表

print(type(json_arr[0]))#这一行输出的是<class 'dict'>,也就是字典

#列表转化为json字符串
print(json.dumps(json_arr))

上面的代码段是json字符串和字典或者列表的转化,其中原始的字符串可以来自于文件或者网络发送的协议。转化完成的字符串可以做多种处理

那么一个符合json格式的字典或者列表如何转化为json字符串呢

json提供了一个函数叫json.dumps(json_obj),函数还有其他参数,比较关键的两个参数是ensure_ascii和indent,如果不指定第一个参数为false,输出的汉字会变成\xff之类的字符,不指定第二个indent时,输出的字符串不会换行,一般取值为4,正好是一个tab键的距离

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值