Python批量生成JSON文件时,函数引用无法输出内容求助
解决Python批量生成JSON时youtube字段显示函数对象的问题
你的代码存在几个关键问题,导致youtube字段显示函数地址而非文件内容,直接按以下方案修复:
核心问题与修复点
- 函数未执行调用:你把
yt函数本身赋值给了youtube字段,而非调用函数获取结果,需写成yt()而非yt - yt函数无返回值:当前
yt函数仅打印文件内容,未返回任何数据,需修改为返回读取到的内容 - 文件打开模式错误:用
'a'模式打开文件是追加写入权限,无法读取内容,要改成'r'只读模式 - 变量混用+JSON格式错误:
create函数错误使用外部变量p、i,且直接把字典转字符串写入会导致JSON格式不合法,需用json模块处理
修正后的完整代码
import json def yt(): # 用只读模式打开文件,读取全部内容并去除首尾空白 with open('readingfile.txt', 'r', encoding='utf-8') as f1: # 若需读取单行,可替换为f1.readline().strip() return f1.read().strip() def create(num): BASE_IMAGE_URL = "ipfs://aBcDeFgHiKjKlMnOpQrStUvWxYz/" writejson = { "name": "whatever", "description": "Most wholesome NFT", "image": f"{BASE_IMAGE_URL}{num}.json", # 使用传入的num参数生成路径 "youtube": yt() # 调用函数获取文件内容 } # 用json.dump生成标准JSON格式文件 with open(f"{num}.json", 'w', encoding='utf-8') as program: json.dump(writejson, program, indent=2) for p in range(1, 11): create(p)
额外说明
- 用
with语句打开文件会自动处理关闭操作,避免资源泄漏 json.dump比直接转字符串更可靠,能生成符合规范的JSON文件- 如果
readingfile.txt中每行对应一个youtube链接,可调整yt函数逻辑(比如读取第num行)适配需求
内容的提问来源于stack exchange,提问作者LeB
相关产品推荐
相关产品推荐

