python 基础类json和csv

news2025/1/21 15:27:44

一、json

1.将字典转换为json字符串

2.将json字符串转化为字典

3.将字典保存为json文件

4.将json文件读取出字典格式的数据

import json
# 1.将字典转化成json字符串
dict1={"张三":"zhangsan","B":"b","C":"c"}
j_str=json.dumps(dict1)
print(j_str,type(j_str))
# 2.将json字符串转化为字典
data=json.loads(j_str)
print(data)
# 3.将字典数据写入json文件
with open('data.json','w') as file:
    json.dump(data,file)
# 4.将json文件中的数据读取出来
with open("data.json",'r') as file:
    load_data=json.load(file)
    print(load_data)

学习资料连接:

python基础库之json库_哔哩哔哩_bilibili

二、csv

1.读取csv文件

import csv
# 1.读取csv文件
f=open("./LoadFile/student.csv",encoding='UTF8')
csv_reader=csv.reader(f)
print(csv_reader)
for line in csv_reader:
    print(line,type(line))
f.close()

2.写csv

import csv
f=open("./LoadFile/teacher.csv",'w',encoding='UTF8')
write_csv=csv.writer(f)
# 写入单行
headLabel=['name', 'age', 'score']
write_csv.writerow(headLabel)
# 写入多行
content=[['zhangsan', '18', '81'],['lisi', '19', '78'],['wangwu', '17', '92']]
write_csv.writerows(content)
f.close()

学习资料链接

跟峰哥学编程-Python入门-40.读写CSV文件_哔哩哔哩_bilibili

三、logging

1.基本用法

import logging
# 设置logging等级,低于该等级消息不会出现,默认等级level=logging.WARNING
# 等级顺序从低至高依次为debug,info,warning,error,critical
logging.basicConfig(level=logging.WARNING,
                    format="%(asctime)s-%(name)s-%(levelno)s",
                    filename='log.txt',
                    filemode='w') # 用在下面语句之前
logging.debug("deg msg")
logging.info("info msg")
logging.warning("warning msg")
logging.error("error msg")
logging.critical("critical msg")

2.自定义logging

import logging
# 设置logging等级,低于该等级消息不会出现,默认等级level=logging.WARNING
# 等级顺序从低至高依次为debug,info,warning,error,critical
test_logger=logging.getLogger("test_logger")
file_handler=logging.FileHandler("test_logger.txt",'w')
file_handler.setFormatter(logging.Formatter("%(asctime)s-%(name)s-%(levelno)s"))
test_logger.addHandler(file_handler)
test_logger.error("error mgs")

3.用logging记录异常 

import logging
# 设置logging等级,低于该等级消息不会出现,默认等级level=logging.WARNING
# 等级顺序从低至高依次为debug,info,warning,error,critical
test_logger=logging.getLogger("test_logger")
file_handler=logging.FileHandler("test_logger_get_exception.txt",'w')
file_handler.setFormatter(logging.Formatter("%(asctime)s-%(name)s-%(levelno)s"))
test_logger.addHandler(file_handler)
try:
    1/0
except:
    test_logger.exception("Get exception")

学习资料连接:

[Python] logging模块怎么用_哔哩哔哩_bilibili

4.python logging.basicConfig参数

logging.basicConfig 是 Python logging 模块中用于配置日志记录的一个方便函数。以下是对其主要参数的详细解释:

参数说明

  • filename

    • 类型:str
    • 作用:指定日志输出的文件名。如果提供了此参数,日志信息将被写入文件而不是控制台。
    • 示例:
     

    收起

    python

    import logging
    logging.basicConfig(filename='example.log')
    
  • filemode

    • 类型:str
    • 作用:指定文件的打开模式,默认为 'a'(追加模式),可以使用 'w'(写入模式)。
    • 示例:
     

    收起

    python

    import logging
    logging.basicConfig(filename='example.log', filemode='w')
    
  • format

    • 类型:str
    • 作用:指定日志消息的格式。使用特定的格式字符串来定义日志消息的外观。
    • 常见格式占位符:
      • %(asctime)s:日志的时间,默认为 '2003-07-08 16:49:45,896' 这种形式。
      • %(levelname)s:日志级别,如 DEBUGINFOWARNINGERRORCRITICAL
      • %(name)s:日志记录器的名称。
      • %(message)s:日志消息。
      • %(levelno)s:日志级别的数字表示。
    • 示例:
     

    收起

    python

    import logging
    logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s')
    
  • datefmt

    • 类型:str
    • 作用:指定日期 / 时间的格式,与 %(asctime)s 一起使用。
    • 示例:
     

    收起

    python

    import logging
    logging.basicConfig(format='%(asctime)s - %(levelname)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
    
  • level

    • 类型:int 或 str
    • 作用:设置日志的最低输出级别。低于此级别的日志消息将被忽略。可以使用 logging.DEBUGlogging.INFOlogging.WARNINGlogging.ERRORlogging.CRITICAL 或相应的整数(10, 20, 30, 40, 50)。
    • 示例:
     

    收起

    python

    import logging
    logging.basicConfig(level=logging.INFO)
    
  • handlers

    • 类型:list
    • 作用:指定日志处理器列表。可以将日志信息发送到多个目标,如文件、控制台、邮件等。
    • 示例:
     

    收起

    python

    import logging
    from logging.handlers import RotatingFileHandler
    handler = RotatingFileHandler('example.log', maxBytes=2000, backupCount=5)
    logging.basicConfig(handlers=[handler])
    

示例

以下是一个综合使用 logging.basicConfig 的示例:

收起

python

import logging


logging.basicConfig(
    filename='example.log',
    filemode='w',
    format='%(asctime)s - %(levelname)s - %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S',
    level=logging.INFO
)


# 输出不同级别的日志
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')

解释

  • filename='example.log' 和 filemode='w' 表示将日志信息以写入模式保存到 example.log 文件中。
  • format='%(asctime)s - %(levelname)s - %(message)s' 和 datefmt='%Y-%m-%d %H:%M:%S' 定义了日志消息的格式和日期格式。
  • level=logging.INFO 表示只输出 INFO 及以上级别的日志信息。

注意事项

  • 一旦调用 logging.basicConfig 并设置了配置,后续调用不会重新配置日志系统,除非使用 force=True 参数。
  • 对于更复杂的日志需求,可能需要使用 LoggerHandlerFormatter 等类进行更详细的日志系统配置。

通过使用 logging.basicConfig 的这些参数,可以方便地设置基本的日志记录功能,满足大多数简单的日志需求。对于更复杂的日志系统,可以深入研究 logging 模块的其他部分,如 FileHandlerStreamHandlerFormatter 等。

除了logging.basicConfig,还有哪些方法可以配置Python的日志记录?

如何在日志消息中包含更多的上下文信息?

如何在生产环境中配置日志记录?

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【数据结构篇】顺序表 超详细

目录 一.顺序表的定义 1.顺序表的概念及结构 1.1线性表 2.顺序表的分类 2.1静态顺序表 2.2动态顺序表 二.动态顺序表的实现 1.准备工作和注意事项 2.顺序表的基本接口: 2.0 创建一个顺序表 2.1 顺序表的初始化 2.2 顺序表的销毁 2.3 顺序表的打印 3.顺序…

mysql查缺补漏

auto increment:自增序列,在字段后作为约束使用 comment:备注信息,用于在创建字段后或创建表的语句最后. 数值类型: 字符串类型: 日期类型: desc table_name:查询表结构 sho…

C++ 面向对象(继承)

三、继承 3.1 继承的概念 基于一个已有的类 去重新定义一个新的类,这种方式我们叫做继承 关于继承的称呼 一个类B 继承来自 类 A 我们一般称呼 A类:父类 基类 B类: 子类 派生类 B继承自A A 派生了B 示例图的语法 class vehicle // 车类 {}class …

JAVA-IO模型的理解(BIO、NIO)

前言 (本文是作者学习制作rpc框架时,一些自用的笔记,并不会完整详细的介绍某个模块,会写大概的流程及一些相关概念,供日后复习使用~) IO模型 先理解基本的IO流程: 应用A把消息发送到 TCP发送缓…

【Spring】原型 Bean 被固定

问题描述 在定义 Bean 时,有时候我们会使用原型 Bean,例如定义如下: Service Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) public class ServiceImpl { }然后我们按照下面的方式去使用它: RestController public class Hello…

奉加微PHY6230兼容性:部分手机不兼容

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

Python脚本实现通过JLink烧录Hex文件

1 安装JLink驱动程序 驱动安装包下载路径:https://www.segger.com/downloads/jlink/ 选择对应的版本下载: 将下载的安装文件双击进行安装。 2 安装 pylink 包 pip install pylink3 查询 JLink 设备的 serial number 将JLink通过USB线插入电脑。 w…

【Qt】04-Lambda表达式

前言一、概念引入二、使用方法2.1 基本用法代码示例2.2 捕获外部变量2.3 参数列表 三、完整代码mywidget.cppsecondwidget.cppmywidget.hsecondwidget.h 总结 前言 一、概念引入 Lambda表达式(Lambda Expressions)是C11标准引入的一种匿名函数对象&…

[STM32 HAL库]串口中断编程思路

一、前言 最近在准备蓝桥杯比赛(嵌入式赛道),研究了以下串口空闲中断DMA接收不定长的数据,感觉这个方法的接收效率很高,十分好用。方法配置都成功了,但是有一个点需要进行考虑,就是一般我们需要…

汇编与逆向(一)-汇编工具简介

RadASM是一款著名的WIN32汇编编辑器,支持MASM、TASM等多种汇编编译器,Windows界面,支持语法高亮,自带一个资源编辑器和一个调试器。 一、汇编IDE工具:RadASM RadASM有内置的语言包 下载地址:RadASM asse…

Langchain+FastApi+Vue前后端Ai对话(超详细)

一、引入 首先可以先看下作者的文章 FastApi相关文章:创建最简单FastApi的项目Vue相关文章:最简单的aixos二次封装Langchain相关文章:如何使用LangSmith跟踪deepseek模型 二、后端搭建 1 项目文件结构 routers:存放api接口se…

leetcode49-字母异位词分组

leetcode 49 思路 通过一个哈希表进行记录每个分组,遍历strs,然后对每个字符串item进行排序,比如:acb bac cab都会被排序为’abc’,然后以abc作为map的key,value就是存放所有匹配出来为key的值,最后把ma…

深度学习 DAY1:RNN 神经网络及其变体网络(LSTM、GRU)

实验介绍 RNN 网络是一种基础的多层反馈神经网络,该神经网络的节点定向连接成环,其内部状态可以展示动态时序行为。相比于前馈神经网络,该网络内部具有很强的记忆性,它可以利用它内部的记忆来处理任意时序的输入序列,…

跨境电商使用云手机用来做什么呢?

随着跨境电商的发展,越来越多的卖家开始尝试使用云手机来协助他们的业务,这是因为云手机具有许多优势。那么,具体来说,跨境电商使用云手机可以做哪些事情呢? (一)实现多账号登录和管理 跨境电商…

【Linux】gawk编辑器二

一、变量 gawk编程语言支持两种变量:内建变量和自定义变量。 1、内建变量 gawk使用内建变量来引用一些特殊的功能。 字段和记录分隔符变量 数据字段变量 此变量允许使用美元符号($)和字段在记录中的位置值来引用对应的字段。要引用记录…

部署Metricbeat监测ES

官方参考文档 安装Metricbeat curl -L -O https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-7.17.27-linux-x86_64.tar.gztar xzvf metricbeat-7.17.27-linux-x86_64.tar.gz设置 Metricbeat连接到 Elasticsearch 进入metricbeat目录配置metricbeat.yml …

Linux--运维

Mysql主从同步 通过将MySQL的某一台主机(master)的数据复制到其他主机(slaves)上,并重新执行一遍来执行 复制过程中一台服务器充当主服务器,而其他一个或多个其他服务器充当从服务器 为什么要做主从复制 …

【odbc】odbc连接kerberos认证的 hive和spark thriftserver

hive odbc驱动,以下两种都可以 教程:使用 ODBC 和 PowerShell 查询 Apache HiveHive ODBC Connector 2.8.0 for Cloudera Enterprise spark thriftserver本质就是披着hiveserver的外壳的spark server 完成kerberos认证: (1)可以…

家政服务小程序,打造智慧家政新体验

春节即将来临,家政市场呈现出了火热的场景,大众对家政服务的需求持续增加。 近年来,家政市场开始倾向数字化、智能化,借助科学技术打造家政数字化平台,让大众在手机上就可以预约家政服务,减少传统家政市场…

SQL在线格式化 - 加菲工具

SQL在线格式化 - 加菲工具 打开网站 加菲工具 https://www.orcc.online 选择“SQL 在线格式化” 或者直接访问网址 https://www.orcc.online/tools/sql 输入sql,点击上方的格式化按钮即可 输入框得到格式化后的sql结果