当前位置: 首页 > wzjs >正文

免费网站设计软件wordpress自动标签

免费网站设计软件,wordpress自动标签,wordpress 定时备份,企业vi设计与网站开发1. JSON 概念 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式: 人类可读的文本格式完全独立于编程语言用于存储和传输结构化数据广泛应用于API通信、配置文件和数据存储 2. JSON 核心原理 键值对结构:类似字典的概念树状层级&#x…

在这里插入图片描述

1. JSON 概念

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式:

  • 人类可读的文本格式
  • 完全独立于编程语言
  • 用于存储和传输结构化数据
  • 广泛应用于API通信、配置文件和数据存储

2. JSON 核心原理

  • 键值对结构:类似字典的概念
  • 树状层级:支持嵌套数据结构
  • 数据类型支持:字符串、数字、布尔值、数组、对象、null
  • 无状态:不包含函数或可执行代码
  • 文本格式:使用纯文本表示,默认UTF-8编码

3. JSON 语法规范

基本结构

{"key1": "value","key2": 42,"key3": true,"key4": null,"key5": ["数组", "元素"],"key6": {"nested": "嵌套对象"}
}

语法规则

  1. 键名:必须用双引号包裹
  2. 字符串值:必须用双引号包裹
  3. 数据类型
    • 字符串:"text"
    • 数字:1233.14
    • 布尔值:truefalse
    • null:null
    • 数组:[值1, 值2]
    • 对象:{"key": value}
  4. 分隔符
    • 键值对用冒号 : 分隔
    • 元素用逗号 , 分隔
  5. 不支持特性
    • 注释
    • 尾随逗号
    • 十六进制数字

4. JSON API 功能(Python)

核心函数

函数功能主要参数
json.dump()序列化到文件obj, fp, indent, ensure_ascii
json.dumps()序列化为字符串obj, indent, separators, default
json.load()从文件反序列化fp, object_hook, parse_float
json.loads()从字符串反序列化s, object_hook, parse_int

关键参数说明

  1. 序列化参数

    • indent:缩进空格数(美化输出)
    • ensure_ascii=False:允许非ASCII字符(如中文)
    • default:自定义对象序列化函数
    • separators=(',', ':'):紧凑格式
  2. 反序列化参数

    • object_hook:自定义字典转换函数
    • parse_float:自定义浮点数解析
    • parse_int:自定义整数解析

5. JSON 处理流程

json.dumps
json.loads
json.dump
json.load
default函数
object_hook
Python对象
JSON字符串
Python对象
JSON文件
自定义对象
可序列化字典

6. 应用示例

示例1:基本序列化与反序列化

输入(Python对象)

data = {"server": "web01","status": "online","ports": [80, 443],"active": True
}

序列化

import json# 转换为JSON字符串
json_str = json.dumps(data, indent=2)
print(json_str)

输出(JSON字符串)

{"server": "web01","status": "online","ports": [80,443],"active": true
}

反序列化

# 从JSON字符串转换回Python对象
restored_data = json.loads(json_str)
print(restored_data["ports"][0])  # 输出: 80

示例2:文件读写

写入JSON文件

config = {"database": {"host": "db.example.com","port": 3306,"user": "admin"},"timeout": 30
}with open("config.json", "w") as f:json.dump(config, f, indent=4)

生成的config.json

{"database": {"host": "db.example.com","port": 3306,"user": "admin"},"timeout": 30
}

读取JSON文件

with open("config.json", "r") as f:loaded_config = json.load(f)print(loaded_config["database"]["host"])  # 输出: db.example.com

示例3:处理自定义对象

自定义设备类

class NetworkDevice:def __init__(self, name, ip):self.name = nameself.ip = ip

序列化自定义对象

def device_encoder(obj):if isinstance(obj, NetworkDevice):return {"device_name": obj.name, "ip_address": obj.ip}raise TypeError("不可序列化的对象")router = NetworkDevice("core-router", "10.0.0.1")
json_str = json.dumps(router, default=device_encoder)
print(json_str)
# 输出: {"device_name": "core-router", "ip_address": "10.0.0.1"}

反序列化自定义对象

def device_decoder(dct):if "device_name" in dct and "ip_address" in dct:return NetworkDevice(dct["device_name"], dct["ip_address"])return dctdevice = json.loads(json_str, object_hook=device_decoder)
print(f"{device.name}: {device.ip}")  # 输出: core-router: 10.0.0.1

示例4:处理特殊数据类型

输入(包含日期)

from datetime import datetimelog_entry = {"event": "login","user": "alice","timestamp": datetime.now()
}

自定义序列化

def custom_serializer(obj):if isinstance(obj, datetime):return obj.isoformat()return str(obj)  # 其他类型转为字符串json_str = json.dumps(log_entry, default=custom_serializer)
print(json_str)

输出

{"event": "login","user": "alice","timestamp": "2023-11-15T14:30:45.123456"
}

7. 常见错误处理

invalid_json = "{'key': 'value'}"  # 错误:JSON要求双引号try:data = json.loads(invalid_json)
except json.JSONDecodeError as e:print(f"JSON解析错误: {e.msg}")print(f"位置: 行 {e.lineno}, 列 {e.colno}")# 实际输出: JSON解析错误: Expecting property name enclosed in double quotes

8. 最佳实践

  1. 美化与压缩

    • 开发环境:使用 indent=2 方便阅读
    • 生产环境:使用 separators=(',', ':') 减少体积
  2. 中文支持

    data = {"name": "服务器"}
    json_str = json.dumps(data, ensure_ascii=False)  # 正确显示中文
    
  3. 数据类型转换

    • JSON数字 → Python int/float
    • JSON数组 → Python list
    • JSON对象 → Python dict
    • JSON null → Python None
  4. 安全注意

    • 不要解析不可信来源的JSON
    • 设置最大解析深度:json.loads(data, max_depth=10)

JSON是现代应用中最常用的数据交换格式,掌握它的基本使用和Python处理技巧,是自动化运维和开发的基础能力。从配置文件到API通信,JSON无处不在!


文章转载自:

http://c3NUr6WA.Lxhgj.cn
http://a7kbxcHb.Lxhgj.cn
http://HJg8JNpo.Lxhgj.cn
http://gctbyuV9.Lxhgj.cn
http://lsWd1HsM.Lxhgj.cn
http://C538pvEW.Lxhgj.cn
http://K6638loZ.Lxhgj.cn
http://6egkDlc0.Lxhgj.cn
http://xC3cl6Qb.Lxhgj.cn
http://67a8kiJi.Lxhgj.cn
http://x7EbZHmA.Lxhgj.cn
http://HJY74vlP.Lxhgj.cn
http://9zVpHaGy.Lxhgj.cn
http://2x1w6gdC.Lxhgj.cn
http://iXkh8iUq.Lxhgj.cn
http://Jzl3atAd.Lxhgj.cn
http://Gw619nKT.Lxhgj.cn
http://yP4Tgagz.Lxhgj.cn
http://2aYPKJTg.Lxhgj.cn
http://SFcmHXqp.Lxhgj.cn
http://VtecjvEp.Lxhgj.cn
http://gyXJkM2f.Lxhgj.cn
http://NB5QJIxh.Lxhgj.cn
http://QuWnH5zI.Lxhgj.cn
http://TeA8VkkX.Lxhgj.cn
http://D9x4FbCR.Lxhgj.cn
http://xMZObroq.Lxhgj.cn
http://NbxwNFZ2.Lxhgj.cn
http://FI8SuizW.Lxhgj.cn
http://Jr67J8ws.Lxhgj.cn
http://www.dtcms.com/wzjs/751398.html

相关文章:

  • 曲沃网站开发网络推广的几种主要方法
  • asp做的手机网站网页设计表单制作代码
  • 制作企业网站怎么报价南昌网站建设推广专家
  • 快速做网站公司哪家专业营销网站建设服务
  • 深圳罗湖做网站的公司哪家好wordpress文章保存图片
  • 网站建设费怎么做账网站 全屏幻灯片
  • 用虚拟机做服务器搭建网站wordpress aws
  • 电子商务网站建设报价wordpress 通用代码 网页
  • 基于django的电子商务网站设计国内代理ip地址
  • wordpress建站好不好个人商城
  • 网站百度提示风险网站使用方法
  • 数码网站名html是建网站导航栏怎么做
  • 物流网站建设可行性报告网站建设费用设计
  • 互联网工具型网站网站备案是什么
  • 许昌做网站联系电话有赞微商城登录
  • 广州骏域网站佛山科技网站建设
  • 查看网站后台登陆地址重庆网站搭建公司
  • 著名设计网站如何将网站搭在阿里云
  • 接技术标做网站做50个网站
  • 兰州搜狗推广佛山网站推广优化公司
  • 什么是网站维护实时新闻
  • 福田企业网站优化排名无锡微信网站建设
  • 做网站的作品思路及步骤wordpress 自定义 空白
  • 微网站方案问卷调查网站赚钱
  • 房山网站建设公司wordpress时光轴插件
  • 高端快速建站怎么做免费的网站链接
  • 泉州网站建设咨询网站建设备案多长时间
  • 网站建设系统总体结构功能图wordpress访客记录
  • 网站图片怎么做alt重庆网站建设公司销售
  • 长春网站建设招代理wordpress首页布局怎么修改