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

python 基础类json和csv

一、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.kler.cn/a/511738.html

相关文章:

  • JSON-stringify和parse
  • 傅里叶变换在语音识别中的关键作用
  • 2025年1月17日(点亮三色LED)
  • Ubuntu 24.04 LTS linux 文件权限
  • 网上订餐系统 javaweb项目 (完整源码)
  • [创业之路-254]:《华为数字化转型之道》-1-华为是一个由客户需求牵引、高度数字化、高度智能化、由无数个闭环流程组成的价值创造、评估、分配系统。
  • 深入剖析iOS网络优化策略,提升App性能
  • 【LC】2239. 找到最接近 0 的数字
  • Node.js 写一个登录中间件
  • 排序算法学习小结
  • 如何确保Python爬虫不违反微店规定
  • Elixir语言的软件开发工具
  • 切面Aop的了解和使用
  • 【优选算法篇】2----复写零
  • 打游戏黑屏了但是有游戏声音 原因分析
  • 口令攻击和钓鱼攻击
  • nvm的各种命令及其用途
  • spring那些事
  • 2021最新中高阶Android面试题总结,已整理成文档_android面试题2021中高级
  • Springboot项目启动优化详解
  • 详解position: sticky粘性定位
  • 性能优化之动态加载
  • Android APK的打包流程_android apk打包流程
  • iOS UIScrollView的一个特性
  • (k8s)k8s部署mysql与redis(无坑版)
  • opengrok_windows_环境搭建