如何将PDF转为Base64后动态添加到JSON数组中
实现方案
你可以预先初始化一个空列表存储最终的结构数据,每次遍历到PDF文件时,构造符合要求的字典对象追加到列表中即可,不管目录下有1个还是多个PDF都能自动适配,不需要提前定义固定数量的变量。
完整可运行代码示例:
import base64 import json # 假设files是你获取到的当前目录下所有文件列表 # 用lower()兼容大写PDF后缀的情况 files = [f for f in files if f.lower().endswith('pdf')] pdf_data_list = [] for f in files: # 用with上下文管理器打开文件,自动释放文件句柄,避免资源泄漏 with open(f, 'rb') as fp: data = fp.read() encoded_data = base64.b64encode(data).decode('UTF-8') # 构造单文件的字典结构,追加到列表 pdf_data_list.append({ "name": f, "data": encoded_data, "ContentType": "application/octet-stream" }) # 如果需要导出为JSON字符串可直接调用dumps方法 result_json = json.dumps(pdf_data_list, indent=2, ensure_ascii=False)
最终得到的pdf_data_list完全符合你要求的结构,文件数量会自动和目录下的PDF数量保持一致,不会出现单文件时运行失败的问题。
内容的提问来源于stack exchange,提问作者astroboy1
相关产品推荐
相关产品推荐

