Json文件的特点

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。Json格式有几个特点:

  • 对象通过键值对表现;
  • 键通过双引号包裹,后面跟冒号:,然后跟该键的值;
  • 值可以是字符串、数字、数组等数据类型;
  • 对象与对象之间用逗号隔开;
  • {}用来表达对象;
  • []用来表达数组;

以一个实际例子看看:

import json
data={
    "status":"success",
    "data":{
        "Type":"json",
        "result":[
                "fruit1":"apple",
                "price":25
                "fruit2":"banana",
                "price":18

Python的Json函数

Python内置了 Json函数,可以用来解析Json文件,获取字段和值。只要导入 json 库即可:import json。

json有json.dumps和json.loads两个函数,区别在于:

函数描述
json.dumps()将 Python 对象编码成 JSON 字符串
json.loads()将已编码的 JSON 字符串解码为 Python 对象,


以一个实际例子看看:

print (data)
# Python 字典类型转换为 JSON 对象
data1 = json.dumps(data)
print(data1)
# 将 JSON 对象转换为 Python 字典
data2 = json.loads(data1)
print(data2)

运行的结果是这样:

{'status': 'success', 'data': {'Type': 'json', 'result': [{'fruit1': 'apple', 'price': 25}, {'fruit2': 'banana', 'price': 18}]}}
{"status": "success", "data": {"Type": "json", "result": [{"fruit1": "apple", "price": 25}, {"fruit2": "banana", "price": 18}]}}
{'status': 'success', 'data': {'Type': 'json', 'result': [{'fruit1': 'apple', 'price': 25}, {'fruit2': 'banana', 'price': 18}]}}

可以看到json.dump()和Json.loads的区别。

Json的字段解析

获取Json的value字段值

只要先弄懂json文件的结构,就可以根据路径来获取所需要的Value值,包含在列表中的Value可以通过索引获取

#打印Json返回data中的status值
print(data['status'])
#打印Json返回的result内容
print(data['data']['result'])
#打印Json返回的result列表索引0的内容,即列表的第一个元素
print(data['data']['result'][0])
#打印Json返回的result列表中字段fruit1和fruit2的值,根据索引0找到第一个元素fruit1,索引1找到第二个元素fruit2
print(data['data']['result'][0]['fruit1'])
print(data['data']['result'][1]['fruit2'])

输出的结果为:

success
[{'fruit1': 'apple', 'price': 25}, {'fruit2': 'banana', 'price': 18}]
{'fruit1': 'apple', 'price': 25}
apple
banana

获取Json的Key字段名

使用.keys()获取

data3=data['data']['result'][0] print (data3) #获取所有的key的列表 print(data3.keys()) #获取所有的key单个输出 for key in data3: print (key)

输出的结果为:

{'fruit1': 'apple', 'price': 25}
dict_keys(['fruit1', 'price'])
fruit1
price

复杂Json解析

如果json的key值是可变的,但是又希望取value值呢,这种情况比较复杂,可以用循环,先将key获取出来,再用key作为变量去逐个获取value值。

假设下方示例,需要获取一共有多少种水果并且各个水果的价格。

import json
data={
    "status":"success",
    "data":{
        "Type":"json",
        "result1":[
                "fruit":"apple",
                "price": 25
                "fruit":"banana",
                "price": 18
        "result2": [
                "fruit": "apple",
                "price": 24
                "fruit": "banana",
                "price": 17

则可以采用下列方式实现:

# 获取可变key result1 & result2的名称
for i in data['data']:
    # 判断是包含了result 才认为是有效数据需要执行下一步
    if 'result' in i:
        print (data['data'][i][0]['fruit'],data['data'][i][0]['price'])
        print (data['data'][i][1]['fruit'],data['data'][i][1]['price'])

运行结果为:

apple 25
banana 18
apple 24
banana 17
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。Json格式有标准的特点。在爬虫时,解析json格式,更方便获取接口返回的一些重要信息。 else: print '没有' 以上这篇Python判断是否json是否包含一个key的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发网。 您可能感兴趣的文章:python 提取tuple类型值中json格式的key值方法python 提取key 为中文的json 串方法深入理解PythonJson解析python解析含有重复key的json方法 mysql从5.7.8版本开始原生支持了JSON类型数据,同时可以对JSON类型字段中的特定的值进行查询和更新等操作,通过增加JSON类型的属性可以大大的提高我们在mysql表中存储的数据的拓展性,无需每次新增字段时都进行表结构的调整,下面我们不深入讲解底层的实现原理,我们主要来梳理一下我们在日常工作中使用实践 mysql版本:8.0.28 springboot版本: 2.2.2 测试表结构: CREATE TABLE `t_json` ( `id` int unsig
MySQL数据库JSON字段类型与JSON函数1. MySQL JSON概述1.1 JSON字段说明1.2 JSON函数说明2. MySQL JSON操作 1. MySQL JSON概述 1.1 JSON字段说明 Mysql5.7版本及其以后提供了一个原生的Json字段类型,Json类型的值将不再以字符串的形式存储,而是采用一种允许快速读取文本元素(document elements)的内部二进制(internal binary)格式。在Json列插入或者更新的时候将会自动验证Json文本,未通过验证的文本
select tem.utsTempCode,json_extract(tem.utsTempCode, "$.view") from adtemplate tem where tem.templateId=101077 select tem.utsTempCode,json_extract(tem.utsTempCode, "$.view") from adtemplate tem where tem.templateId=101077 and json_extract(tem.utsTempCod.