python 字符串json解析list_Python-数据解析-json模块 !

import json

json 一种轻量级的数据交换格式。

一、JSON 的值

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null
{  "title": "JSON Example",  "nested": {    "someInteger": 7,    "someBoolean": true,    "someArray": Array[3][      "list of",      "fake strings",      "and fake keys"    ]  }}

二、json 模块

json 模块提供了 python 对象的序列化和反序列化功能。

  • 序列化:

将一个 python 对象编码转换为 json 字符串。

  • 反序列化:

将 json 字符串解码转换为 python 对象。

json 模块提供了4个方法:

  • dumps()
  • dump()
  • loads()
  • load()

其中 loads() 和 load() 方法用于 python 对象的反序列化,dumps() 和 dump() 方法用于 python 对象的序列化。

① json.loads()

把 json 格式字符串解码转换成 python 对象。

import json
str_list = "[1, 2, 3, 4]"str_dict = "{'city': '长沙', 'name': '数据云团'}"
json.loads(str_list)>>>[1, 2, 3, 4]
json.loads(str_dict)>>>{'city': '长沙', 'name': '数据云团'}

f3bc508f7d4667aaf68619236063b259.png

② json.dumps()

将 python 类型编码为 json 字符串,返回一个 str 对象。

1bc7f505a3d953e77d824b3ea37b07e9.png
import jsondemo_list = [1, 2, 3, 4]demo_tuple = (1, 2, 3, 4)demo_dict = {'city': '长沙', 'name': '数据云团'}
json.dumps(demo_list)>>>[1, 2, 3, 4]
json.dumps(demo_tuple)>>>[1, 2, 3, 4]# 注意:json.dumps() 处理中文时默认使用的 ASCII 编码,会导致中文无法正常显示# 记住:处理中文时,添加参数 ensure_ascii=False 来禁用 ASCII 编码print(json.dumps(demo_dict, ensure_ascii=False))

③ json.load()

读取文件中 json 形式的字符串元素,转化成 python 类型。

它与 json.loads() 方法的区别在于:

一个读取的是字符串;一个读取的是文件。

# 读取一个名为 listStr.json 和 dictStr.json 的文件内容import json
str_list = json.load(open("listStr.json"))print(str_list)
str_dict = json.load(open("dictStr.json"))print(str_dict)

④ json.dump()

将 python 内置类型序列化为 json 对象后写入文件。

它与 json.dumps() 方法的区别在于写入的是文件还是字符串。

import json
str_list = [{"city": "长沙"}, {"name": "数据云团"}]json.dump(str_list, open("listStr.json", "w"), ensure_ascii=False)
str_dict = {"city": "长沙", "name": "数据云团"}json.dump(str_dict, open("listStr.json", "w"), ensure_ascii=False)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值