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

从0开始重新学python+neo4j之文件读写、函数、异常

# 导入 pandas 库,用于处理 Excel 和 JSON 数据
import pandas as pd
# 导入 json 模块,用于读写 JSON 文件
import jsondef writeJsonFile(filePath, data):"""将给定的数据写入指定路径的 JSON 文件中。:param filePath: 要写入的 JSON 文件路径(字符串):param data: 要写入的数据(通常是列表或字典)"""try:# 以写入模式('w')打开文件,指定 UTF-8 编码以支持中文with open(filePath, 'w', encoding='utf-8') as f:# 使用 json.dump 将数据序列化为 JSON 格式并写入文件# ensure_ascii=False 允许非 ASCII 字符(如中文)正常显示# indent=4 使输出格式美观,缩进 4 个空格json.dump(data, f, ensure_ascii=False, indent=4)except FileNotFoundError:# 如果文件路径无效或目录不存在,捕获异常并提示print(f"文件{filePath}找不到")def readJsonFileByJson(filePath):"""使用标准 json 模块读取并打印 JSON 文件内容。:param filePath: 要读取的 JSON 文件路径"""# 以只读模式打开 JSON 文件,使用 UTF-8 编码with open(filePath, 'r', encoding='utf-8') as f:# 使用 json.load 解析 JSON 文件内容并打印print(json.load(f))# 打印分隔线,便于区分输出内容print("-" * 50)def readJsonFileByPandas(filePath):"""使用 pandas 读取 JSON 文件,并逐行逐列打印每个单元格的值。:param filePath: 要读取的 JSON 文件路径"""# 使用 pandas 读取 JSON 文件,默认将 JSON 数组解析为 DataFramedf = pd.read_json(filePath)# 打印整个 DataFrame(表格形式)print(df)# 打印分隔线print("-" * 50)# 获取所有列名columns = df.columns# 遍历 DataFrame 的每一行(index 为行索引,row 为该行数据 Series)for index, row in df.iterrows():# 打印当前是第几行(从 1 开始计数)print(f"第{index + 1}行")# 遍历当前行的每一列for column in columns:# 获取该单元格的值value = row[column]# 如果值是 NaN(pandas 中的缺失值),则替换为字符串 "null"if pd.isnull(value):value = "null"# 打印格式:列名+行号: 值(例如:name1:张三)print(f"{column}{index + 1}:{value}")# 每行结束后打印较短的分隔线print("-" * 30)def readExcel(filePath, sheetName):"""读取指定 Excel 文件的指定工作表,并将其转换为 JSON 格式保存。:param filePath: Excel 文件路径:param sheetName: 要读取的工作表名称"""try:# 打印分隔线print("-" * 50)# 提示成功读取文件print(f"成功读取文件:{filePath}")print("-" * 50)# 使用 pandas 读取 Excel 文件中的指定工作表df = pd.read_excel(filePath, sheetName)# 打印数据的形状(行数、列数)print(f"数据形状{df.shape} 行数:{df.shape[0]} 列数: {df.shape[1]}")print("-" * 50)# 获取所有列名并转为列表columns = df.columns.tolist()print(f"列明:{columns}")print("-" * 50)# 将 DataFrame 中的 NaN 值替换为 None(便于后续 JSON 序列化时显示为 null)df = df.where(pd.notnull(df), None)# 将 DataFrame 转换为字典列表格式:# 每一行是一条记录(字典),整个结果是一个列表data = df.to_dict(orient='records')# 注释掉的另一种格式:以行索引为 key,整行为 value(orient='index')# 调用 writeJsonFile 函数,将转换后的数据写入 "jsonTest.json"writeJsonFile("jsonTest.json", data)except FileNotFoundError:# 如果 Excel 文件不存在,捕获异常并提示print(f"错误:找不到文件'{filePath}'")except Exception as e:# 捕获其他可能的异常(如格式错误、权限问题等)print(f"读取文件{filePath}时发生错误")# 主程序入口:当脚本直接运行时执行以下代码
if __name__ == "__main__":# 1. 读取名为 "testexcel.xlsx" 的 Excel 文件中名为 "Sheet1" 的工作表,#    并将内容转换为 JSON 格式保存到 "jsonTest.json"readExcel("testexcel.xlsx", "Sheet1")# 2. 使用标准 json 模块读取并打印 "jsonTest.json" 的内容readJsonFileByJson("jsonTest.json")# 3. 使用 pandas 读取同一个 JSON 文件,并按行列详细打印每个字段值readJsonFileByPandas("jsonTest.json")

 

http://www.rkmt.cn/news/70039.html

相关文章:

  • 实用指南:Nestjs框架: 微服务事件驱动通信与超时处理机制优化基于Event-Based 通信及异常捕获实践
  • 2025 年 12 月纳米砂磨机,卧式砂磨机,工业砂磨机厂家最新推荐,产能、专利、环保三维数据透视!
  • 迅为RK3588开发板Android系统烧写及注意事项
  • Pytorch随笔:gather函数
  • 2025年精选烤兰打包带实力源头厂家推荐,打包带钢带/冷镀锌打包带/烤漆打包带/带钢/镀锌打包钢带烤兰打包带品牌哪家好
  • 博士留学导师资源榜单:谁的学术人脉覆盖全球名校?
  • 使用NVIDIA Isaac Lab和Newton训练机器人策略与布料模拟
  • 2025年度中央空调品牌推荐排行榜,新测评精选中央空调品牌
  • 实测花灯厂家,技术强的原来是这家!避坑指南
  • verl grpo 快速开始
  • 2025年中国十大超声波吐司面包切割机服务商推荐:哪家售后服
  • 2025年打工人代餐清单:上班族便携即食的低热量代餐品牌推荐
  • sql server 导出excel表
  • 2025年市场热销雷达干扰模拟器品牌实力排行,无线信号测量仪表/以太网测试仪/光通信测量仪表雷达干扰模拟器企业推荐排行榜单
  • docker runc逃逸漏洞修复的大坑
  • 2025年柔性夹爪品牌怎么选?苏州柔触机器人核心技术
  • 2025年医疗用品搬运技术革新:柔性夹爪解决方案全景解析
  • 易基因:山东大学基础医学院李雷教授团队微量WGBS揭示DNA甲基化调控斑马鱼造血干细胞发育的表观遗传机制|项目文章
  • 2025年中国机床钣金加工企业综合竞争力TOP5排行榜
  • 2025年五大实验室耗材品牌排行榜,芯硅谷实力出众
  • 2025年中国十工业脚轮厂家推荐:推荐聚氨酯工业脚轮厂家哪家
  • Ubuntu装机
  • 2025年12月,双螺杆颗粒挤出机怎么选?这份推荐榜TOP给你答案
  • 2025年浙江十大留学申请机构推荐:不错的留学申请专业公司、
  • 2025无锡特种柜物流服务权威推荐榜单:无锡特种柜渠道/无锡海运特种柜服务商/无锡特种柜运输公司精选
  • 实用指南:[SEO]网站不收录的原因及解决方法有哪些
  • 留学中介排行榜TOP10:博士申请口碑才是硬核通行证
  • 2025年12月杭州工厂获客服务公司综合推荐指南:十大专业平台解析
  • SQL Server 2025 新功能概览