欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > python 基础类json和csv

python 基础类json和csv

2025/1/21 15:04:27 来源:https://blog.csdn.net/m0_73527922/article/details/145235585  浏览:    关键词: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 logginglogging.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的日志记录?

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

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com