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

如何在Python中合并两个JSON文件并为文本添加分类标记

正确合并两个JSON文本文件并添加标签的Python实现

先聊聊你原脚本里的几个问题哈:

  • 遍历文件的方式不对,for linePos,lineNeg in positiveFile,negativeFile这种写法没法实现逐行读取两个文件的内容,它会把文件对象当成迭代项处理,完全不是你想要的逐行配对读取逻辑
  • 变量名写错了!解析正样本后存在distros_dictPos里,但后面调用的时候写成了distros_dict['text'],负样本也犯了同样的错误,这肯定会触发NameError
  • 没有用安全的文件处理方式,直接open文件如果忘记关闭会有资源泄漏风险,推荐用with语句自动管理文件生命周期
  • 输出格式完全没贴合需求,你需要给正样本加1,前缀、负样本加0,前缀,还要把文本用引号包裹起来

下面是修正后的完整代码,完全匹配你的需求:

import json

# 处理正样本文件(添加1,前缀)
with open('train_posi_tweets_2017.txt', 'r', encoding='utf-8') as positive_file:
    for line in positive_file:
        # 去除行首尾空白字符,避免JSON解析出错
        line = line.strip()
        if not line:
            continue
        try:
            tweet_data = json.loads(line)
            # 按要求格式输出内容
            print(f'1,"{tweet_data["text"]}"')
        except json.JSONDecodeError as e:
            print(f"解析正样本行出错: {e}")

# 处理负样本文件(添加0,前缀)
with open('train_nega_tweets_2017.txt', 'r', encoding='utf-8') as negative_file:
    for line in negative_file:
        line = line.strip()
        if not line:
            continue
        try:
            tweet_data = json.loads(line)
            print(f'0,"{tweet_data["text"]}"')
        except json.JSONDecodeError as e:
            print(f"解析负样本行出错: {e}")

代码说明:

  • 用with语句打开文件,代码块结束后文件会自动关闭,安全又省心
  • 逐行读取文件内容,先去除行首尾的空白(比如换行符、空格),避免解析JSON时触发格式错误
  • 加入了异常处理,如果某一行JSON格式有问题,会打印错误信息而不是直接崩溃
  • 使用f-string格式化输出,完美实现你想要的1,"文本内容"和0,"文本内容"格式

运行这段代码后,你会得到和期望完全一致的输出:

1,"PAKIS RAPE KIDS: Mexico police in college raids: Vehicles are set ablaze and more than 120 peo... @Ewok_League #edl"
1,"Bullfighting sparks animal rights protests in Mexico - video - The Guardian "
0,"@TheArkham No crea que me olvido de los amigos,espero todo este marchando bien, un abrazo."
0,"Avisale al IFE Que #SiDragonBallFueraMexicano Le hubiera dado a Noe Hernandez Semillas Del Ermitaño (ESO HUBIERA SIDO ESTUPENDO. QEPD)"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:15:51