Python读取json文件-程序员宅基地

技术标签: python操作文件  python  json  

使用python读取json文件,输出结果为字符串python对象

如下图,data目录下有test.json文件 

现在可以通过python读取该json文件,并输出为两种不同类型(python对象、字符串)的数据

1.输出为python对象,这里使用的是json模块的load()方法

(1)输出类型和文件内容如下:

(2)源代码(需要引入json库):

import json

#定义文件路径
path = './data/'

# 打开文件,r是读取,encoding是指定编码格式
with open(path + 'test.json','r',encoding = 'utf-8') as fp:

    print(type(fp))  #输出结果是 <class '_io.TextIOWrapper'> 一个文件类对象

    # load()函数将fp(一个支持.read()的文件类对象,包含一个JSON文档)反序列化为一个Python对象
    data = json.load(fp)

    print(type(data))  #输出结果是 <class 'dict'> 一个python对象,json模块会根据文件类对象自动转为最符合的数据类型,所以这里是dict

print("\n************************************************************************************************************\n")
print(data)
print("\n************************************************************************************************************\n")

# 因为上面使用了with语句,使用 with 语句打开文件时,with 语句会创建一个代码块的上下文,并在代码块执行结束后自动清理资源。通过这种方式,我们可以不用显示调用 file.close() 来关闭文件,从而避免资源泄漏的问题。
# fp.close() 

2.输出类型为字符串,这里使用的是read()方法 

(1)输出类型和文件内容如下:

(2)源代码:

#文件路径
path = './data/'

# 打开文件,r是读取的意思,encoding是指定编码格式
with open(path + 'test.json','r',encoding = 'utf-8') as fp:

    print(type(fp)) #输出结果是 <class '_io.TextIOWrapper'> 一个文件类对象

    # read()方法将fp(一个支持.read()的文件类对象,包含一个JSON文档)转换成字符串
    data = fp.read()
    
    print(type(data)) #输出结果是 <class 'str'> 字符串

print("\n************************************************************************************************************\n")
print(data)
print("\n************************************************************************************************************\n")

# 因为上面使用了with语句,使用 with 语句打开文件时,with 语句会创建一个代码块的上下文,并在代码块执行结束后自动清理资源。通过这种方式,我们可以不用显示调用 file.close() 来关闭文件,从而避免资源泄漏的问题。
# fp.close()

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/spx_0108/article/details/127267973

智能推荐

关于springboot2.4.0的小坑 跨域异常_spring allowedorigins localhost-程序员宅基地

文章浏览阅读818次。今天做项目的时候发现跨域一直报错,只有设置allowedOrigins为localhost:8080才能进得去.无论是用@CrossOrigin注解还是实现WebMvcConfigurer类,哪怕是继承WebMvcConfigurerAdapter类重写addCorsMappings方法,都是不起作用了.报错:@CrossOrigin 响应中的“Access Control Allow Origin”标头的值不得为通配符“*This is a part of security, you cannot_spring allowedorigins localhost

第二章 西门子数控机床采集方案_西门子840dsl 通过opcua读取-程序员宅基地

文章浏览阅读6.8k次,点赞4次,收藏73次。第二章 西门子数控机床采集方案前言一、西门子官方网站介绍二、828D与840D SL介绍三、OPC UA采集方案四、机床端设置4.1 数控软件版本确认4.2 V4.05的OPC UA激活设置4.2.1 设置系统选项4.2.2 设置 MiniWeb 通讯端口的 IP 地址4.2.3 MiniWeb 监控 IP 地址4.2.4 配置启动 MiniWeb 服务4.2.5 重启数控系统4.3 V4.07的OPC UA激活设置4.3.1 设置系统选项4.3.2 设置 MiniWeb 通讯端口的 IP 地址4.3.3 _西门子840dsl 通过opcua读取

初识Mongdb之数据插入篇_mongotemplate.insert 如果表不存在-程序员宅基地

文章浏览阅读2.7k次,点赞9次,收藏8次。目录数据插入数据之源数据导入数据插入方法面向编程插入命令行导入数据脚本多个集群启动(自启动不推荐)小故事(点击查看)数据插入数据之源我们在实际的开发应用之中,数据到底从何而来,是已经准备好的数据源吗?当然不是,如果没有数据就需要你自己去收集(数据挖掘),利用爬虫来解决,最后存储到数据库(MySQL,mongdb,Redis,pandas......),充分利用这些数据库来操作数据,可以达到事半功倍的效果。对于本专栏使用是的数据是随机生成的数据源,便于我们日常学_mongotemplate.insert 如果表不存在

P1918 保龄球_p1918c++-程序员宅基地

文章浏览阅读186次。`map`_p1918c++

基于单片机的加热炉炉温控制系统设计-程序员宅基地

文章浏览阅读3.5k次,点赞7次,收藏41次。但由于输出控制量只有两种状态,使被控参数在两个方向上变化的速率均为最大,因此容易引起反馈回路产生振荡,对自动控制加热炉炉温控制系统会产生十分不利的影响,甚至会因为输出开关的频繁动作而不能满足加热炉炉温控制系统对控制精度的要求。但随着计算机与超大规模集成电路的迅速发展,以现代控制理论和计算机为基础,采用数字控制、显示、A/D与D/A转换,配合执行器与控制阀构成的计算机控制加热炉炉温控制系统,在过程控制过程中得到越来越广泛的应用。由于炉温控制加热炉炉温控制系统的控制对象具有惯性大,连续性的特点。_基于单片机的加热炉炉温控制系统设计

Oracle-----约束简介&非空约束&唯一约束&主键约束-程序员宅基地

文章浏览阅读2.1k次,点赞2次,收藏4次。上一篇????:Oracle-----为表重命名&数据表删除&闪回技术&修改表结构文章目录1、约束简介2、非空约束(not null、nk)2.1 范例1:使用非空约束2.2 范例2:正确地增加语句2.3 范例3:错误地增加语句3、唯一约束(unique、uk)3.1 范例1:使用唯一约束3.2 范例2:正确地增加语句3.3 范例3:错误地增加语句3.4 范例4:查询user...

随便推点

阿里云服务器使用教程_新手入门超详细一看就懂_阿里云服务器教程-程序员宅基地

文章浏览阅读8.2k次,点赞12次,收藏201次。阿里云服务器使用教程包括云服务器购买、云服务器配置选择、云服务器开通端口号、搭建网站所需Web环境、安装网站程序、域名解析到云服务器公网IP地址,最后网站上线全流程,阿小云分享阿里云服务器详细使用教程_阿里云服务器教程

浏览器复制粘贴以及手机端webview复制粘贴_华为手机webview 粘贴无数据-程序员宅基地

文章浏览阅读6.1k次,点赞4次,收藏4次。一、浏览器赋值粘贴1、document.execCommand这部分参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Document/execCommand咱们再浏览器中使用的复制大部分都是用的这个原理2、例子://这是一个点击方法,放到复制按钮上即可 function copyArticle1() { cons..._华为手机webview 粘贴无数据

Boost中ASIO的一些用法-定时器_boost asio不编译可以用吗-程序员宅基地

文章浏览阅读2.1k次。一、介绍ASIO,基于操作系统的异步机制,可有效避免多线程编程的诸多副作用。目前主要关注于通信方面,使用大量的类封装了socket,提供更高层次的接口二、使用不需要编译,默认不支持SSL,要支持的话需要自己编译OpenSSL。三、用法Sample1、定时器#include #include #include using namespace bo_boost asio不编译可以用吗

c语言编程实现strlen,C语言::模拟实现strlen函数(示例代码)-程序员宅基地

文章浏览阅读750次。编写一个C语言程序模拟实现strlen函数.算法strlen函数功能是计算字符串中字符的个数.(除\0外)而字符串本身就是一个字符数组,只不过末尾以\0结束.因此,我们只需遍历除\0之外的所有字符即可.有三种方法可以解决这个问题.算法总结方法一:设置一个整型计数器,遍历字符串.方法二:通过不断函数自身的递归.方法三:与方法一类似,设置一个char*变量标记字符串尾部,通过指针相减得到字符长度.核心..._c语言实现strlen

P74-前端基础项目开发-首页main部分开发广告栏-项目完整代码_首页广告开发-程序员宅基地

文章浏览阅读904次。P74-前端基础项目开发-首页main部分开发广告栏-项目完整代码1.概述这篇文章是首页开发最后一个部分,也是这个项目的结束部分。通过这个项目练习让我们掌握了HTML+CSS的基础使用。2.广告栏2.1.广告栏需求样式2.2.创建广告栏内容在index.html文件中创建广告栏内容 <!-- 创建广告容器 --> <div class="ad w"> <ul class="shortcut"> <li> _首页广告开发

TS流结构图_现代电视技术中解析ts包头的工作流程图-程序员宅基地

文章浏览阅读2k次。该说真正了解TS,还是看了朋友推荐的《数字电视业务信息及其编码》一书之后,MPEG2 TS和数字电视是紧密不可分割的,值得总结一下其中的一些关系。ISO/IEC-13818-1:系统部分;ISO/IEC-13818-2:视频;ISO/IEC-13818-3:音频;ISO/IEC-13818-4:一致性测试;ISO/IEC-13818-5:软件部分;ISO/IEC-138_现代电视技术中解析ts包头的工作流程图

推荐文章

热门文章

相关标签