首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >使用Python解析JSON

使用Python解析JSON

作者头像
用户7886150
修改2021-01-18 11:37:46
修改2021-01-18 11:37:46
3.9K0
举报
文章被收录于专栏:bit哲学院bit哲学院

参考链接: Python-Json 3 : python中验证是否为有效JSON数据

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。Python3 中可以使用 json 模块来对 JSON 数据进行编解码,主要包含了下面4个操作函数: 

提示:所谓类文件对象指那些具有read()或者 write()方法的对象,例如,f = open('a.txt','r'),其中的f有read()方法,所以f就是类文件对象。  

在json的编解码过程中,python 的原始类型与JSON类型会相互转换,具体的转化对照如下: 

Python 编码为 JSON 类型转换对应表: 

PythonJSONdictobjectlist, tuplearraystrstringint, float, int- & float-derived EnumsnumberTruetrueFalsefalseNonenull

JSON 解码为 Python 类型转换对应表: 

JSONPythonobjectdictarrayliststringstrnumber (int)intnumber (real)floattrueTruefalseFalsenullNone

操作示例 : 

import json

data = {

    'name': 'pengjunlee',

    'age': 32,

    'vip': True,

    'address': {'province': 'GuangDong', 'city': 'ShenZhen'}

}

# 将 Python 字典类型转换为 JSON 对象

json_str = json.dumps(data)

print(json_str) # 结果 {"name": "pengjunlee", "age": 32, "vip": true, "address": {"province": "GuangDong", "city": "ShenZhen"}}

# 将 JSON 对象类型转换为 Python 字典

user_dic = json.loads(json_str)

print(user_dic['address']) # 结果 {'province': 'GuangDong', 'city': 'ShenZhen'}

# 将 Python 字典直接输出到文件

with open('pengjunlee.json', 'w', encoding='utf-8') as f:

    json.dump(user_dic, f, ensure_ascii=False, indent=4)

# 将类文件对象中的JSON字符串直接转换成 Python 字典

with open('pengjunlee.json', 'r', encoding='utf-8') as f:

    ret_dic = json.load(f)

    print(type(ret_dic)) # 结果 <class 'dict'>

    print(ret_dic['name']) # 结果 pengjunlee 

注意:使用eval()能够实现简单的字符串和Python类型的转化。  

user1 = eval('{"name":"pengjunlee"}')

print(user1['name']) # 结果 pengjunlee

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档