当前位置: 首页 > 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.jsqmd.com/news/59573/

相关文章:

  • 2025年度圆吐司去皮机制造厂五大推荐,显裕机械性能优异
  • 2025年石化行业正规供应商TOP5推荐:中阳机械技术精湛
  • 2025年石化行业资深厂商TOP5推荐:源头石化老牌厂家全解
  • 实用指南:Nestjs框架: 微服务事件驱动通信与超时处理机制优化基于Event-Based 通信及异常捕获实践
  • 2025 年 12 月纳米砂磨机,卧式砂磨机,工业砂磨机厂家最新推荐,产能、专利、环保三维数据透视!
  • P1.语义分割与MMSegmentation
  • 迅为RK3588开发板Android系统烧写及注意事项
  • 博士留学面试辅导红黑榜:谁的模拟训练最接近实战?
  • c语言判断某个点是否在凸四边形内部,边界范围用
  • Pytorch随笔:gather函数
  • 博士留学导师资源榜单:谁的学术人脉覆盖全球名校?
  • 2025 年优质空压机厂家 TOP10 盘点,各行业适配之选全解析
  • 流体管道、医疗器械、电机:乐泰胶水全场景推荐
  • 乐泰胶水好用吗?专家深度分享心得
  • 2025 年 12 月红木办公家具权威推荐榜:红木办公桌/红木老板桌/红木大班台,红木办公椅,红木书桌椅,红木书房套装,红木文件柜,古典与现代的完美融合!
  • 使用NVIDIA Isaac Lab和Newton训练机器人策略与布料模拟
  • 2025年度中央空调品牌推荐排行榜,新测评精选中央空调品牌
  • 2025 年 12 月红木床/红木双人床/红木大床/红木雕花床/红木架子床推荐榜单,红木卧室套装,红木床头柜/红木衣柜,经典传承与现代设计完美融合!
  • 2025 年 12 月红木家具品牌权威推荐榜:东方红木家居,传承经典工艺与现代设计的完美融合!
  • 2025年必应推广代运营服务商综合评测:基于实力与效果的五家推荐
  • 部署:海豚调度(DolphinScheduler部署)(单机Standalone部署)
  • 实测花灯厂家,技术强的原来是这家!避坑指南
  • 7000-8000价位游戏本怎么选?五大高性价比机型横评,闭眼入不踩雷!
  • verl grpo 快速开始
  • LLM 投毒 [1/3] - 解读Transformer的“思想”
  • 博士留学录取率榜单出炉:谁的Offer产出能力最强?
  • 前端文件上传终极指南:从原理到架构实践! - 实践
  • 2025年美的真暖空气能中央空调品牌权威推荐榜单:美的尊享HNM1壁挂炉‌/美的明装暖气‌/美的真享水科技中央空调‌品牌精选
  • 2025年泡沫模块供货厂家权威推荐榜单:工业化循环水养殖‌/海容模块建房‌/鱼池墙体材料‌源头厂家精选