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

如何将变量内容写入文件?如何将变量传入f.write()函数?

解决将变量内容写入文件的问题

我来帮你搞定这个问题!你当前代码里的小问题很明显——f.write('jsonData')是把字符串字面量'jsonData'写入了文件,而不是变量jsonData的实际内容。接下来我给你详细说明正确的实现方式:

核心要点

jsonData是通过json.loads(data)得到的Python字典对象,而f.write()只接受字符串类型的参数,所以我们需要先把字典转换为JSON格式的字符串,这里用json.dumps()方法是最优选择,它能将字典转为标准JSON字符串,还支持格式化输出让日志更易读。

推荐实现(使用with语句,更安全)

推荐用with语句操作文件,它会自动帮你关闭文件,避免手动close()可能引发的异常问题:

def get(self):
    url = 'http://httpbin.org/get'
    r = requests.get(url)
    data = r.text
    jsonData = json.loads(data)
    
    # 将jsonData写入日志文件
    with open('test_logs.txt', 'a+', encoding='utf-8') as f:
        # 将字典转为格式化的JSON字符串,indent=2让结构更清晰
        json_str = json.dumps(jsonData, indent=2)
        # 写入字符串并换行,避免内容堆积
        f.write(json_str + '\n')
    
    return jsonData

保留原有open/close的写法

如果你想沿用原来的文件操作方式,修改如下即可:

def get(self):
    url = 'http://httpbin.org/get'
    r = requests.get(url)
    data = r.text
    jsonData = json.loads(data)
    
    # 将jsonData写入日志文件
    f = open('test_logs.txt', 'a+', encoding='utf-8')
    json_str = json.dumps(jsonData, indent=2)
    f.write(json_str + '\n')
    f.close()
    
    return jsonData

额外说明

  • 添加encoding='utf-8'是为了避免不同操作系统下的编码乱码问题,保证内容正常显示;
  • 加上'\n'换行符,让每次写入的日志内容单独占一行,提升可读性;
  • 如果你只是想写入请求返回的原始文本,直接用f.write(data + '\n')即可,但针对jsonData变量,json.dumps()的方式能输出规范的JSON格式,比直接打印字典的字符串表示更专业。

内容的提问来源于stack exchange,提问作者computerguy1234

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:18:14