Python json详解

一、抓取文本数据

  1. 结构化数据:json,xml(极其的稀少) 。直接转化为python类型

  2. 非结构化数据:HTML,字符串。正则表达式、xpath

二、JSON简介

     JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式, 它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。 适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。

三、JSON格式数据特点

 1.最外层要么是一个列表一样的[],要么是一个字典一样的{}
 2.json数据的引号必须是双引号 
 3.末尾元素,不写逗号 
 4.没有注释

四、JSON常用方法

4.1  json.dumps()

      python类型转化为json字符串,返回一个str对象把一个Python对象编码转换成Json字符串;

import  json  #自带库
#1.python字典 >> json(数据的填充)
def dict_json():
     # python数据 > 字典
     dict_data= {
        "name":"mike",
         "age":19,
         "addr":"杭州"
     }
     print(dict_data,type(dict_data))

     # python数据 > json
     #默认使用的ascii 编码
     # indent=3 每一个键值对的缩进空格
     # json_data=json.dumps(dict_data)
     json_data=json.dumps(dict_data,ensure_ascii=False,indent=3)
     print(json_data, type(json_data))


if __name__ == '__main__':
     dict_json()

 4.2  json.loads()

  把Json格式字符串解码转换成Python对象;

#2.json >> python字典
def json_dict():
    # python数据 > 字典
    dict_data = {
        "name": "mike",
        "age": 19,
        "addr": "杭州"
    }
    # python数据 > json
    # 默认使用的ascii 编码
    json_data = json.dumps(dict_data, ensure_ascii=False, indent=3)
    print(json_data, type(json_data))
    # json > python 才能够处理前端交互过来的json数据
    python_data=json.loads(json_data)
    print(python_data,type(python_data))

 4.3  json.dumps() 

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

import  json

# python格式的数据 >> json文件
#json.dump(json文件)
def ptyhon_file():
    # python数据 > 字典
    dict_data = {
        "name": "mike",
        "age": 19,
        "addr": "杭州"
    }
    #文件对象
    file_obj=open('js1.json','w',encoding='utf-8')
    # json文件
    json.dump(dict_data,file_obj,ensure_ascii=False)
    #关闭
    file_obj.close()

  4.4  json.loads() 

   读取文件中json格式的字符串元素 转化成python类型; 

# json文件 >> python格式的数据
#json.load(json文件)
def file_python():
    #文件对象
    file_obj=open('js1.json','r',encoding='utf-8')
    # json文件 >> python格式的数据
    python_data=json.load(file_obj)
    print(python_data,type(python_data))
    #关闭文件
    file_obj.close()


if __name__ == '__main__':
   file_python()

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/9623.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python 进阶指南(编程轻松进阶):五、发现代码异味

原文:http://inventwithpython.com/beyond/chapter5.html 导致程序崩溃的代码显然是错误的,但是崩溃并不是发现程序问题的唯一手段。其他迹象可能表明程序存在更微妙的错误或不可读的代码。就像气体的味道可以指示气体泄漏或者烟雾的味道可以指示火灾一样…

接口自动化测试如何做?测试老鸟总结,接口测试数据构造大全......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 接口参数的数据获取…

DJ3-4 传输层(第四节课)

目录 一、TCP 概述 二、TCP 报文段的首部字段格式 三、TCP 往返时延的估计和超时 1. 估计往返时间 2. RTT 估计例子 3. 估计往返时间的偏差 4. 设置重传超时间隔 一、TCP 概述 全双工服务:允许在同一时间同一连接上,数据能够双向传输。注意&#…

高效办公——Excel表格-02篇(if函数常见用法 + 条件格式的使用)

高效办公——Excel表格-02篇(if函数常见用法 条件格式的使用)1. if单条件简单用法1.1 简单需求1.2 实现方法2. if多条件使用(if-else的情况)3. if多条件使用(if(A && B)的情况)3.1 简单需求3.2 实现需求4. if多条件使用(if(A || B)的情况)5. 条…

解决macOS IntelliJ IDEA 卡顿问题

写在前面的话1:我在撰写这篇博客时候,所用的IntelliJ IDEA版本是IntelliJ IDEA 2022.3.3 (Ultimate Edition),你需要知道可能对于不同的IntelliJ IDEA版本会有一定的差异 写在前面的话2:如果我这篇博客可以帮助到你,请…

突发!ChatGPT疯了!

‍数据智能产业创新服务媒体——聚焦数智 改变商业今天,笔者正常登录ChatGPT,试图调戏一下他。但是,突然震惊的发现,ChatGPT居然疯了。之所以说他是疯了,而不是崩溃了,是因为他还能回复我,但回…

Jvm学习笔记(一)内存模型

JVM内存模型 java不需要用户手动去管理内存的释放,这大大解放了程序员的心智负担,jvm运行的核心绕不开他的内存模型,本章着重于jvm的内存模型分析。 程序计数器 程序计数器是一块较小的内存区域,主要作用是确定下一条需要执行的…

强大到让人无法想象的ChatGPT-5即将发布,上千名人士却紧急叫停

目录 【ChatGPT 5简介】 【ChatGPT 5的潜在应用】 【ChatGPT 5的潜在危险】 ChatGPT4还没有好好体验,比GPT4强大1000倍的ChatGPT5又即将发布!届时将彻底改变人工智能领域,并改变我们现有的世界 【ChatGPT 5简介】 OpenAI计划在2023年12月发…

mybatis plus同时使用逻辑删除和唯一索引的问题及解决办法

1 问题背景 在开发中,我们经常会有逻辑删除和唯一索引同时使用的情况。但当使用mybatis plus时,如果同时使用逻辑删除和唯一索引,会报数据重复Duplicate entry的问题。 举例来说,有表user,建立唯一索引(us…

亚马逊云科技赋能数据分析,完成最后一块拼图

Serverless时代已经到来!企业的技术架构,总是伴随着不断增长的数据与日趋复杂的业务持续演进。如何通过构建更易用的技术架构来聚焦在业务本身,而不必在底层基础设施的管理上投入过多的精力,是数据驱动型企业需要思考的重要议题。…

【Linux】之nc命令(连接与扫描指定端口、监测服务端口的使用情况)解析、详解实例、邮件告警

🍁博主简介 🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入! 文章目录nc命令简介nc命令的安装nc命令语法格式…

腾讯38K测试良心分享,熬夜整理10万字详细软件测试面试笔记

国内的互联网面试,恐怕是现存的、最接近科举考试的制度。 这是由于互联网IT行业的求职者太多了,如果考察的是清一溜的算法题和设计题,那么会要求面试官有极高的技术水平,还要花大量的时间成本和精力。 所以,八股文面…

git查看历史提交记录

本文来说下git如何查看历史的提交记录 文章目录git查看历史提交记录git查看历史提交记录 本文来说下在idea编辑器中如何查看git的历史提交记录 右键选择 查看历史的git提交记录

基于深度学习的火焰检测系统(YOLOv5清新界面版,Python代码)

摘要:火焰检测系统用于检测日常是否出现火情,支持图片、视频、摄像头等多方式检测火焰、实现火灾警报功能,提供了登录注册界面。在介绍系统实现原理的同时,给出部分Python的实现代码以及PyQt的UI界面。火焰检测系统主要用于日常生…

【go-zero Drone】通过Drone完成go-zero的CI第一篇 初探:go-zero api接入drone pipeline

一、Drone 安装部分就不在这里赘述了,大家可以自行百度去找找 Drone的官网网址:https://www.drone.io/ 为什么选择了Drone没有选择Jenkins 对比dronejenkins内存很小几十兆内存上G的内存占用pipeline通过yamlgrovvy 增加学习成本配置十分简单上手十分复杂版本控制pipeline的y…

【Python实战】Python采集二手车数据——超详细讲解

前言 今天,我们将采集某二手车数据,通过这个案例,加深我们对xpath的理解。通过爬取数据后数据分析能够直观的看到二手车市场中某一品牌的相对数据,能够了解到现在的二手车市场情况,通过分析数据看到二手车的走势&#…

4. 【动手学深度学习v2】数据操作 + 数据预处理

4. 数据操作 + 数据预处理【动手学深度学习v2】 李沐 B站:https://space.bilibili.com/1567748478/channel/seriesdetail?sid=358497 课程主页:https://courses.d2l.ai/zh-v2/ 教材:https://zh-v2.d2l.ai/ 课件:https://courses.d2l.ai/zh-v2/assets/pdfs/part-0_4.pdf Gi…

Mybatis-plus学习2

一、Mybatis-plus分页操作 1.配置拦截器即可 //分页插件Beanpublic PaginationInterceptor paginationInterceptor(){return new PaginationInterceptor();} 2.直接使用Page对象 //测试分页查询Testpublic void testPage(){//参数一:当前页//参数二:页面…

k8s v1.26.2 安装部署步骤

准备 开通端口 master需要开通的端口: TCP: 6443 2379 2380 10250 10259 10257 ,10250 30000~30010(应用) node需要开通的端口: TCP: 10250 30000~30010(应用) master加端口 firewall-cmd --permanent --add-port6443/tcp firewall-cmd --permanent --add-port2379/tcp fir…

[论文笔记] Efficient and Scalable Graph Pattern Mining on GPUs

Efficient and Scalable Graph Pattern Mining on GPUs GPU 上高效可扩展的图模式挖掘 [Paper] [Code] OSDI’22 摘要 提出了第一个可以在多 GPU 上高效运行的图模式挖掘框架(Graph Pattern Mining, GPM), G2Miner. 使用模式图感知(pattern-aware), 输入感知(input-aware)以…
最新文章