Python中如何给JSON格式化输出每行添加分支编号与行号?
解决方案
可以按以下步骤实现需求,通过循环遍历DataFrame的每一行,处理JSON格式的PROFILE列后给每行添加指定前缀:
- 遍历DataFrame的每条记录,取出BRANCH值和PROFILE列的JSON字符串。
- 将PROFILE解析为字典后,用
json.dumps生成带缩进的多行格式化字符串。 - 把格式化后的字符串按行拆分,给每一行加上对应的BRANCH值和从1开始计数的行号。
- 将处理后的每一行写入输出文件。
示例代码
import pandas as pd import json # 替换为你实际读取SQL结果的代码 # df = pd.read_sql(your_sql_query, your_db_connection) with open("output.txt", "w", encoding="utf-8") as output_file: # 遍历DataFrame每一行数据 for _, row in df.iterrows(): branch = str(row["BRANCH"]) # 解析PROFILE列的JSON字符串为字典 profile_data = json.loads(row["PROFILE"]) # 生成带2空格缩进的多行JSON内容 formatted_profile = json.dumps(profile_data, indent=2) # 拆分JSON为单行列表 profile_lines = formatted_profile.splitlines() # 逐行添加前缀并写入文件 for line_idx, line_content in enumerate(profile_lines, start=1): output_file.write(f"{branch} {line_idx} {line_content}\n")
代码说明
json.dumps(..., indent=2):生成带缩进的格式化JSON,确保每个层级自动换行,方便后续拆分处理。splitlines():将多行JSON字符串拆分为单个行的列表,实现逐行添加前缀的操作。enumerate(..., start=1):让行号从1开始计数,完全匹配你给出的示例格式。
内容的提问来源于stack exchange,提问作者sboxtops
相关产品推荐
相关产品推荐

