首页 > 其他分享 >JSON数据

JSON数据

时间:2024-10-03 15:45:27浏览次数:8  
标签:obj python json JSON str print 数据

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript的一个子集,但JSON是独立于语言的,很多编程语言都支持JSON格式的数据的生成和解析。

JSON的特点包括:

  • 文本格式: JSON是纯文本,可以被任何编程语言读取和生成。
  • 结构简单: 使用键值对存储数据,结构清晰,易于理解。
  • 易于解析: 大多数编程语言都有现成的库来解析JSON数据,将其转换为本地对象。
  • 易于传输: 由于是文本格式,JSON数据可以很容易地通过HTTP等协议传输。
  • 语言无关: 虽然JSON源自JavaScript,但它是独立于语言的,几乎所有的现代编程语言都支持JSON。

JSON数据的基本类型包括:

  • 字符串: 用双引号括起来的文本。
  • 数字: 没有引号的数值。
  • 布尔值: TrueFalse
  • 数组: 用方括号括起来的值序列,例如["apple", "banana", "cherry"]
  • 对象: 用大括号括起来的键值对集合,例如{"name": "Lilian", "age": 21}
  • null: 表示空值。

JSON对象示例:

{
    "name": "Lilian",
    "age": 21,
    "isEmployed": False,
    "skills": ["math", "music", "web crawler"],
    "address": {
        "street": "Num.360, JinNiu District",
        "city": "CD",
        "province": "SC"
    }
}

python中有自带的json标准库能处理json数据,提供的基本功能有:

  1. 序列化(编码): 将python对象转换为JSON格式的字符串。
    1. json.dumps(obj): 将python对象obj转换成json字符串。
    2. json.dump(obj): 将python对象obj转换为json字符串并写入到文件中。
  2. 反序列化(解码): 将JSON格式的字符串转换回python对象。
    1. json.loads(json_str): 将JSON字符串json_str转换为python对象。
    2. json.load(file): 从文件读取JSON字符串并将其转换为python对象。

示例代码:

import json


# python中JSON对象会被解析成字典格式,数组被解析为列表,字符串解析为字符串str,数字解析为整数int或浮点数float,布尔值解析为布尔值,null解析为None
# 字符串中的key需要加上双引号,不能用单引号
str_ = '{"name": "战狼3"}'
print(type(str_))  # <class 'str'>
print('--------str to obj---------')
obj = json.loads(str_)
print(type(obj))  # <class 'dict'>


print('--------obj to str---------')
tmp_str = json.dumps(obj, ensure_ascii=False)
print(tmp_str)  # {"name": "战狼3"}
print(type(tmp_str))  # <class 'str'>


print('---------obj to file---------')
json.dump(obj, open('json.txt', 'w', encoding='utf8'), ensure_ascii=False)


print('---------file to obj---------')
obj2 = json.load(open('json.txt', 'r', encoding='utf8'))
print(obj2)  # {"name": "战狼3"}
print(type(obj2))  # <class 'dict'>

除了基本功能,json还支持自定义编码器和解码器来处理特定类型的转换,JSONDecoder类用于自定义解码JSON数据,JSONEncoder类用于自定义编码python对象到JSON数据。

还提供了异常处理机制: json.JSONDecodeError。

详细信息查看python官网:https://docs.python.org/3.12/library/json.html#basic-usage

json在线解析网站:http://www.json.cn/#

标签:obj,python,json,JSON,str,print,数据
From: https://www.cnblogs.com/qyly/p/18445679

相关文章

  • SpringBoot项目使用yml文件链接数据库异常
    SpringBoot使用properties连接数据库时没有出现问题SpringBoot使用yml连接数据库时出现:UnabletoconnecttoRedis并在报错信息中出现:发现是用户或者密码出现问题通过查询知道yml是区分数据类型的,所以如果用户名或者密码是数字的话,就要注意将密码用双引号括起来,将其识别为......
  • 数据解析的三种方式
    数据解析的三种方式数据解析的原理解析的局部的文本内容都会在标签之间或者标签对应的属性中进行存储1.进行指定标签的定位2.标签或者标签对应的数据中存储的数据值进行提取1.正则url请求方式反反爬策略编写响应的正则进行访问2.bs4解析原理:实例化一个Beauti......
  • 【AIGC】AI时代的数据安全:使用ChatGPT时的自查要点
    博客主页:[小ᶻZ࿆]本文专栏:AIGC|ChatGPT文章目录......
  • 【艾思科蓝】Python数据分析与可视化实战:从入门到进阶
    【IEEE出版|会后3-4个月EI检索】第三届云计算、大数据应用与软件工程国际学术会议(CBASE2024)_艾思科蓝_学术一站式服务平台更多学术会议请看:学术会议-学术交流征稿-学术会议在线-艾思科蓝 目录引言一、Python数据分析入门1.Python数据分析环境搭建2.数据读取与预......
  • 【VMware VCF】更新 SDDC Manager 中的 vSAN HCL 数据库。
    VMwareCloudFoundation解决方案中,SDDCManager内的vSANHCL数据库具有有效期,如果vSANHCL数据库在60天内未更新,则会出现警告;如果vSANHCL数据库在90天内未更新,则会出现严重错误。如下图所示,当前SDDCManager中的vSANHCL数据库已超过60天未更新并出现了警告提......
  • 10.3数据结构
    二叉树表示与储存:parlchrch二叉树遍历:前序,中序,后序遍历先序遍历先根、左子树、右子树中序遍历左子树、根、右子树后序遍历左子树、右子树、根无根树的遍历......
  • 读数据湖仓05数据需要的层次
    1. 业务价值1.1. 技术和商业在这个世界上是相互交织的1.1.1. 基础数据在商业和技术应用中是不可或缺的1.2. 技术的存在是为了推动商业的目标和进步,并由企业出资支持1.2.1. 当技术推动商业发展时,商业会蓬勃发展,技术也会随之繁荣1.2.2. 当技术发展偏离这个基本模......
  • SQL自学:使用函数处理数据
    一、使用函数1、文本处理函数文本处理函数如同强大的文字操控工具,能够实现对文本数据的多样化操作。它可以进行字符串的转换、截取、拼接等处理,满足不同场景下对文本信息的处理需求。例如,通过特定的文本处理函数,可以将文本转换为特定的大小写形式,以便进行统一的文本比较和检......
  • (六)WPF数据驱动模式
     WPF开发方式; MVVM(ModelViewViewModel)1.绑定XAML数据方式  在 XAML中添加绑定数据和绑定的操作属性        Content="{BindingMyVar}" 在XAML对应了的窗体类的构造函数添加数据绑定        this.DataContext=mainViewModel;//让此页面的数据取......
  • 60_初识搜索引擎_上机动手实战基于scoll技术滚动搜索大量数据
    如果一次性要查出来比如10万条数据,那么性能会很差,此时一般会采取用scoll滚动查询,一批一批的查,直到所有数据都查询完处理完使用scoll滚动搜索,可以先搜索一批数据,然后下次再搜索一批数据,以此类推,直到搜索出全部的数据来scoll搜索会在第一次搜索的时候,保存一个当时的视图快照,之后只......