You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 06:54:37