使用python批量解析xml文件并且预处理成json的格式

 基本 文件的xml的格式如下:



	成都网友称震感强烈 女同事当即哭泣
	2008年05月12日16:15
	 

    
		
			四川发生7.8级地震
		
	
	
		
			,新民网记者网上连线成都网友姚先生
		
			姚先生正在成都市武侯区的办公室打电话
			突然感觉  
			电脑显示器得很厉害便丢下电话抓起手机钱包
			往外
			手里还无绳电话子机
			准备给远在江苏的家人打电话  
		
	
	
	
		
			姚先生
			坐在他旁边的女同事立刻感觉是在地震,
			一下子了起来。
		
		
			姚先生介绍
			成都市很多钢结构的房屋都有明显震感
			很多市民一样疏散室外时,
			随即发现
			手机信号已经中断,据称基站坏了。
		
		
			疏散出来的人群中,大家都在谈论唐山大地震。
		
	
	
		
			姚先生新民网记者一些成都市民
			成都的伊藤洋华堂武侯店倒塌
		
	
	
	
	
        
        
         
         
        
    	
	
	
	
	

 解析当中得到每一个事件并且需要提取下面的关系方便做数据可视化:

# coding=utf-8
#引入parse的包
from xml.dom.minidom import parse
import os.path

path = "D:\CEC2.3\地震"
files = os.listdir(path)  # 得到文件夹下所有文件名称
s = []
#事件数目
count = 0
#文件数目
flag = 0
for xmlFile in files:  # 遍历文件夹
    flag = flag+1
    if not os.path.isdir(xmlFile):  # 判断是否是文件夹,不是文件夹才打开
        # xml文件读取操作
        # 将获取的xml文件名送入到dom解析
        doc = parse(os.path.join(path, xmlFile))  # 先把ml文件加载进来
        root = doc.documentElement  # 获取元素的根节点
        Events = root.getElementsByTagName('Event')  # 找到子节点,得到的是一个数组

        for Event in Events:  # 把所有的事件子节点进行遍
            # node_name = Event.hasAttribute("eid")
            count=count+1
            #打印事件的eid
            print("eid:" + Event.getAttribute("eid"), end='' + " ")
            if len(Event.getElementsByTagName("Participant")):
                participant = Event.getElementsByTagName("Participant")[0]  # 根据标签名找到,并且输出第一个元素
                try:
                    print("参与者:%s" % participant.childNodes[0].data, end='' + " ")  # 输出标签名的子节点的第一个值,并转为data类型
                except:
                    print("参与者:+"+"\""+ "null"+"\"", end='' + " " )  # 输出标签名的子节点的第一个值,并转为data类型
            else:
                print("参与者: null", end='' + " ")
            if len(Event.getElementsByTagName("Time")):
                time = Event.getElementsByTagName("Time")[0]  # 根据标签名找到,并且输出第一个元素
                try:
                    print("时间:%s" % time.childNodes[0].data, end='' + " ")  # 输出标签名的子节点的第一个值,并转为data类型
                except:
                    print("时间: null",end='' + " ")
            else:
                print("时间: null", end='' + " ")
            if len(Event.getElementsByTagName("Location")):
                location = Event.getElementsByTagName("Location")[0]
                try:
                    print("地点:%s" % location.childNodes[0].data, end='' + " ")
                except:
                    print("地点: null", end='' + " ")
            else:
                print("地点: null", end='' + " ")
            if len(Event.getElementsByTagName("Object")):
                object = Event.getElementsByTagName("Object")[0]
                try:  # 判断是否有data这个属性有这个属性则输出
                    print("对象:%s" % object.childNodes[0].data, end='' + " ")
                except:
                    print("对象: null", end='' + " ")
            else:
                print("对象: null",end='' + " ")
            if len(Event.getElementsByTagName("Denoter")):
                denoter = Event.getElementsByTagName("Denoter")[0]
                try:  # 判断是否有data这个属性有这个属性则输出
                    print("动作:%s" % denoter.childNodes[0].data, end='' + " ")
                except:
                    print("动作: null",end='' + " ")
            else:
                print("动作: null",end='' + " ")
            print("")
    eRelation = root.getElementsByTagName('eRelation')
    for er in eRelation:
        # if(er.hasAttribute("thoughtcontent_eids")):
        #     print("thoughtcontent_eids: "+er.getAttribute("thoughtcontent_eids"),end=""+" ")
        # if (er.hasAttribute("thoughtevent_eid")):
        #     print("thoughtevent_eid: "+er.getAttribute("thoughtevent_eid"),end=""+" ")
        print("\""+"relType"+"\""+":"+"["+"{")
        if (er.hasAttribute("relType")):
            print(er.getAttribute("relType"),end=""+" ")
        if (er.hasAttribute("effect_eid")):
            print("\""+"effect_eid"+"\""+":"+"\""+ er.getAttribute("effect_eid")+"\"", end="" + " ")
        if (er.hasAttribute("cause_eid")):
            print("\""+"cause_eid: " +"\""+":"+"\""+ er.getAttribute("cause_eid")+"\"", end="" + " ")
        if (er.hasAttribute("aevent_eid")):
            print("\""+"aevent_eid: " +"\""+":"+"\""+ er.getAttribute("aevent_eid")+"\"", end="" + " ")
        if (er.hasAttribute("bevent_eid")):
            print("\""+"bevent_eid: " +"\""+":"+"\""+ er.getAttribute("bevent_eid")+"\"", end="" + " ")
        print("}"+"]"+"}"+",")
    print("{"+"\""+"第"+str(flag)+"文件结束"+"\""+":"+"{"+"[")
print("一个文件的事件总数:"+str(count))

解析好的文件内容:

eid:e1 参与者:新华网上海 时间:5月12日 地点: null 对象: null 动作:电 
eid:e2 参与者:上海市政府新闻办 时间:12日15时45分 地点: null 对象: null 动作:称 
eid:e3 参与者:上海市地震局 时间:刚刚 地点: null 对象:消息 动作:提供 
eid:e4 参与者:我国地震台网 时间: null 地点: null 对象: null 动作:测定 
eid:e5 参与者: null 时间:5月12日14时28分 地点:四川汶川县 对象: null 动作:地震 
eid:e6 参与者:建筑 时间: null 地点: null 对象: null 动作:有感 
thoughtcontent_eids: e2-e6 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e3-e6 thoughtevent_eid: e2 relType: Thoughtcontent 
thoughtcontent_eids: e4-e6 thoughtevent_eid: e3 relType: Thoughtcontent 
relType: Causal effect_eid: e5 cause_eid: e4 
第1文件结束
eid:e1 参与者:中新网 时间:4月5日 地点: null 对象: null 动作:电 
eid:e2 参与者: null 时间: null 地点:云南昭通市防震减灾局 对象:官方网站 动作:消息 
eid:e3 参与者: null 时间:截至5日14时 地点:云南昭通永善县 对象: null 动作:地震 
eid:e4 参与者:21人 时间: null 地点: null 对象: null 动作:受伤 
eid:e5 参与者: null 时间: null 地点: null 对象:民房 动作:受损 
eid:e6 参与者: null 时间: null 地点: null 对象: null 动作:倒塌 
eid:e7 参与者: null 时间: null 地点: null 对象:6个乡镇 动作:受损 
eid:e8 参与者: null 时间:目前 地点: null 对象:电力 动作:修复 
eid:e9 参与者: null 时间: null 地点:当地 对象:帐篷 动作:调拨 
eid:e10 参与者:人 时间: null 地点: null 对象: null 动作:转移 
eid:e11 参与者: null 时间:4月5日6时40分 地点:云南昭通永善县 对象: null 动作:地震 
eid:e12 参与者: null 时间: null 地点:当地 对象: null 动作:震感 
eid:e13 参与者: null 时间: null 地点:成都等四川多地 对象: null 动作:震感 
thoughtcontent_eids: e2-e13 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e3-e7 thoughtevent_eid: e2 relType: Thoughtcontent 
relType: Causal effect_eid: e4 cause_eid: e3 
relType: Causal effect_eid: e5 cause_eid: e3 
relType: Causal effect_eid: e6 cause_eid: e3 
relType: Causal effect_eid: e7 cause_eid: e3 
relType: Follow aevent_eid: e12 bevent_eid: e11 
relType: Follow aevent_eid: e13 bevent_eid: e11 
第2文件结束
eid:e1 参与者:新华社 时间:12月26日 地点:昆明 对象: null 动作:电 
eid:e2 参与者:记者 时间:26日 地点: null 对象: null 动作:了解 
eid:e3 参与者: null 时间: null 地点:瑞丽 对象: null 动作:地震 
eid:e4 参与者:19人 时间: null 地点: null 对象: null 动作:受伤 
eid:e5 参与者:3人 时间: null 地点: null 对象: null 动作:重伤 
eid:e6 参与者:16人 时间: null 地点: null 对象: null 动作:轻伤 
eid:e7 参与者: null 时间: null 地点: null 对象: null 动作:报告 
eid:e8 参与者: null 时间:26日4时20分和5时25分 地点:云南省德宏傣族景颇族自治州瑞丽市 对象: null 动作:地震 
eid:e9 参与者: null 时间: null 地点: null 对象: null 动作:地震 
eid:e10 参与者: null 时间: null 地点:全市 对象: null 动作:震感 
eid:e11 参与者:记者 时间: null 地点: null 对象: null 动作:了解 
eid:e12 参与者:10512户49789人 时间: null 地点: null 对象: null 动作:受灾 
eid:e13 参与者:灾区群众2919户9496人 时间:目前 地点: null 对象: null 动作:转移安置 
eid:e14 参与者: null 时间: null 地点: null 对象: null 动作:地震 
eid:e15 参与者: null 时间: null 地点: null 对象:房屋 动作:倒塌 
eid:e16 参与者: null 时间: null 地点: null 对象:2769户9626间 动作:重损 
eid:e17 参与者: null 时间: null 地点: null 对象:2440户7750间 动作:中损 
eid:e18 参与者: null 时间: null 地点: null 对象:5406户17406间 动作:轻损 
eid:e19 参与者: null 时间: null 地点: null 对象:32所中小学校 动作:损坏 
eid:e20 参与者: null 时间: null 地点: null 对象:卫生 动作:损坏 
eid:e21 参与者:医疗卫生部门 时间:目前 地点: null 对象: null 动作:救治 
eid:e22 参与者:各受伤人员 时间: null 地点: null 对象: null 动作:医治 
eid:e23 参与者:民政部门 时间: null 地点: null 对象: null 动作:核查 
eid:e24 参与者: null 时间: null 地点: null 对象:救灾物资 动作:调运 
eid:e25 参与者: null 时间: null 地点: null 对象: null 动作:发放 
eid:e26 参与者:州、市党委政府 时间:26日 地点: null 对象:专项应急经费30万元 动作:安排 
relType: Causal effect_eid: e4 cause_eid: e3 
relType: Causal effect_eid: e5 cause_eid: e3 
relType: Causal effect_eid: e6 cause_eid: e3 
relType: Causal effect_eid: e10 cause_eid: e8 
relType: Causal effect_eid: e10 cause_eid: e9 
relType: Causal effect_eid: e12 cause_eid: e3 
relType: Causal effect_eid: e15 cause_eid: e14 
relType: Causal effect_eid: e16 cause_eid: e14 
relType: Causal effect_eid: e17 cause_eid: e14 
relType: Causal effect_eid: e18 cause_eid: e14 
relType: Causal effect_eid: e19 cause_eid: e14 
relType: Causal effect_eid: e20 cause_eid: e14 
thoughtcontent_eids: e2-e26 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e3-e6 thoughtevent_eid: e2 relType: Thoughtcontent 
thoughtcontent_eids: e12-e20 thoughtevent_eid: e11 relType: Thoughtcontent 
第3文件结束
eid:e1 参与者:新华网 时间:8月20日 地点:昆明 对象: null 动作:电 
eid:e2 参与者: null 时间:20日早晨 地点:云南省盈江县 对象: null 动作:地震 
eid:e3 参与者:云南省地震局 时间: null 地点: null 对象: null 动作:派出 
eid:e4 参与者: null 时间:当日7时许 地点:昆明 对象: null 动作:赶赴 
eid:e5 参与者: null 时间: null 地点: null 对象:救援 动作:指挥 
eid:e6 参与者: null 时间:北京时间8月20日5时35分 地点:云南省德宏傣族景颇族自治州盈江县 对象: null 动作:地震 
relType: Causal effect_eid: e3 cause_eid: e2 
thoughtcontent_eids: e2-e6 thoughtevent_eid: e1 relType: Thoughtcontent 
relType: Follow aevent_eid: e3 bevent_eid: e2 
第4文件结束
eid:e1 参与者:中新网昆明 时间:1月28日 地点: null 对象: null 动作:电 
eid:e2 参与者:云南省西双版纳傣族自治州委宣传部 时间: null 地点: null 对象: null 动作:证实 
eid:e3 参与者: null 时间:28日20时01分 地点:该州景洪市 对象: null 动作:地震 
eid:e4 参与者:西双版纳州委宣传部 时间: null 地点: null 对象: null 动作:说 
eid:e5 参与者: null 时间:目前 地点: null 对象: null 动作:报告 
thoughtcontent_eids: e2-e5 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e3 thoughtevent_eid: e2 relType: Thoughtcontent 
thoughtcontent_eids: e5 thoughtevent_eid: e4 relType: Thoughtcontent 
第5文件结束
eid:e1 参与者:新华社莫斯科 时间:10月11日 地点: null 对象: null 动作:电 
eid:e2 参与者: null 时间:11日 地点:俄罗斯南方5个地区 对象: null 动作:地震 
eid:e3 参与者:12人 时间: null 地点: null 对象: null 动作:死亡 
eid:e4 参与者:俄塔社 时间: null 地点: null 对象: null 动作:说 
eid:e5 参与者: null 时间: null 地点: null 对象: null 动作:地震 
eid:e6 参与者:12人 时间: null 地点:该共和国 对象: null 动作:死亡 
eid:e7 参与者:当地医院 时间: null 地点: null 对象: null 动作:接收 
eid:e8 参与者:数据 时间: null 地点: null 对象: null 动作:显示 
eid:e9 参与者: null 时间: null 地点: null 对象: null 动作:地震 
eid:e10 参与者: null 时间: null 地点: null 对象:该地区部分医院 动作:倒塌 
eid:e11 参与者: null 时间: null 地点: null 对象:山区多条道路 动作:损毁 
eid:e12 参与者: null 时间:当日 地点:达吉斯坦 对象: null 动作:地震 
eid:e13 参与者: null 时间:目前 地点: null 对象: null 动作:救援 
thoughtcontent_eids: e2-e12 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e5-e7 thoughtevent_eid: e4 relType: Thoughtcontent 
thoughtcontent_eids: e9-e11 thoughtevent_eid: e8 relType: Thoughtcontent 
relType: Causal effect_eid: e3 cause_eid: e2 
relType: Causal effect_eid: e5 cause_eid: e4 
relType: Causal effect_eid: e10 cause_eid: e9 
relType: Causal effect_eid: e11 cause_eid: e9 
第6文件结束
eid:e1 参与者:新华网呼和浩特 时间:5月12日 地点: null 对象: null 动作:电 
eid:e2 参与者: null 时间:14时30分左右 地点:内蒙古自治区一些地区 对象: null 动作:震感 
eid:e3 参与者:一些群众 时间: null 地点: null 对象: null 动作:咨询 
eid:e4 参与者:许多单位工作人员 时间:当时 地点: null 对象: null 动作:感觉 
eid:e5 参与者: null 时间: null 地点: null 对象:桌椅 动作:晃动 
eid:e6 参与者: null 时间: null 地点: null 对象: null 动作:看 
eid:e7 参与者: null 时间: null 地点: null 对象:灯管 动作:摆动 
eid:e8 参与者: null 时间: null 地点:办公室 对象: null 动作:跑 
eid:e9 参与者:一些市民 时间:随后 地点: null 对象: null 动作:了解 
eid:e10 参与者:一部分市民 时间: null 地点: null 对象:电话 动作:拨打 
eid:e11 参与者:记者 时间:14时40分左右 地点:现场 对象: null 动作:看到 
eid:e12 参与者:一些事业机关工作人员 时间: null 地点:院内 对象: null 动作:站 
eid:e13 参与者:亲戚朋友 时间: null 地点: null 对象: null 动作:询问 
eid:e14 参与者:一些商店工作人员 时间: null 地点:店外 对象: null 动作:跑 
eid:e15 参与者:大家 时间: null 地点: null 对象: null 动作:议论 
eid:e16 参与者:记者 时间: null 地点: null 对象: null 动作:获悉 
eid:e17 参与者:群众 时间: null 地点:内蒙古包头 对象: null 动作:震感 
thoughtcontent_eids: e2-e17 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e12-e15 thoughtevent_eid: e11 relType: Thoughtcontent 
thoughtcontent_eids: e17 thoughtevent_eid: e16 relType: Thoughtcontent 
relType: Causal effect_eid: e5 cause_eid: e2 
relType: Causal effect_eid: e7 cause_eid: e2 
relType: Causal effect_eid: e8 cause_eid: e2 
relType: Follow aevent_eid: e9 bevent_eid: e2 
relType: Follow aevent_eid: e10 bevent_eid: e2 
relType: Accompany 
第7文件结束
eid:e1 参与者:新华社惠灵顿 时间:1月19日 地点: null 对象: null 动作:电 
eid:e2 参与者:美国地质勘探局 时间: null 地点: null 对象: null 动作:报告 
eid:e3 参与者: null 时间:19日 地点:新喀里多尼亚附近海域 对象: null 动作:地震 
eid:e4 参与者: null 时间:目前 地点: null 对象: null 动作:报告 
eid:e5 参与者: null 时间:北京时间11时35分 地点:洛亚蒂群岛附近 对象: null 动作:地震 
eid:e6 参与者: null 时间: null 地点: null 对象:太平洋海啸预警中心 动作:发布 
thoughtcontent_eids: e2-e6 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e3-e4 thoughtevent_eid: e2 relType: Thoughtcontent 
第8文件结束
eid:e1 参与者:新华网 时间:5月27日 地点:雅加达 对象: null 动作:电  
eid:e2 参与者: null 时间:27日早晨 地点:印度尼西亚中爪哇省日惹市附近 对象: null 动作:地震 
eid:e3 参与者:至少443人 时间: null 地点: null 对象: null 动作:死亡 
eid:e4 参与者:约2800人 时间: null 地点: null 对象: null 动作:受伤 
eid:e5 参与者: null 时间:当地时间早5时53分 地点: null 对象: null 动作:地震 
eid:e6 参与者:美国地震监测部门 时间: null 地点: null 对象: null 动作:报告 
eid:e7 参与者:努格罗霍 时间: null 地点: null 对象: null 动作:说 
eid:e8 参与者:该医院 时间:目前 地点: null 对象: null 动作:接收 
eid:e9 参与者:1000多人 时间: null 地点:医院 对象: null 动作:治疗 
eid:e10 参与者:几家医院 时间: null 地点: null 对象: null 动作:接收 
eid:e11 参与者:工作人员 时间: null 地点: null 对象: null 动作:说 
eid:e12 参与者:房屋的局部或整体 时间: null 地点: null 对象: null 动作:倒塌 
eid:e13 参与者:印尼红十字会 时间: null 地点: null 对象: null 动作:说 
eid:e14 参与者: null 时间: null 地点: null 对象: null 动作:地震 
eid:e15 参与者:443人 时间: null 地点: null 对象: null 动作:死亡 
eid:e16 参与者: null 时间: null 地点:日惹南部地区 对象:电力系统 动作:瘫痪 
eid:e17 参与者: null 时间: null 地点: null 对象:电话 动作:中断 
eid:e18 参与者: null 时间: null 地点: null 对象:机场跑道 动作:被毁 
eid:e19 参与者:苏西洛 时间: null 地点: null 对象: null 动作:下令 
eid:e20 参与者:军队 时间: null 地点: null 对象: null 动作:协助 
eid:e21 参与者: null 时间: null 地点: null 对象: null 动作:撤离 
eid:e22 参与者: null 时间:每年 地点:印尼 对象: null 动作:地震 
eid:e23 参与者: null 时间:2004年12月26日 地点:印尼苏门答腊岛附近海域 对象: null 动作:地震 
eid:e24 参与者: null 时间: null 地点:印度洋沿岸十几个国家 对象: null 动作:海啸 
eid:e25 参与者:20余万人 时间: null 地点: null 对象: null 动作:死亡或失踪 
relType: Causal effect_eid: e3 cause_eid: e2 
relType: Causal effect_eid: e4 cause_eid: e2 
relType: Causal effect_eid: e14 cause_eid: e13 
relType: Causal effect_eid: e15 cause_eid: e2 
relType: Causal effect_eid: e16 cause_eid: e2 
relType: Causal effect_eid: e17 cause_eid: e2 
relType: Causal effect_eid: e23 cause_eid: e22 
relType: Causal effect_eid: e24 cause_eid: e23 
relType: Causal effect_eid: e25 cause_eid: e2 
thoughtcontent_eids: e12 thoughtevent_eid: e11 relType: Thoughtcontent 
thoughtcontent_eids: e8-e10 thoughtevent_eid: e7 relType: Thoughtcontent 
thoughtcontent_eids: e2-e25 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e15 thoughtevent_eid: e14 relType: Thoughtcontent 
第9文件结束
eid:e1 参与者:中新网 时间:5月27日 地点: null 对象: null 动作:电 
eid:e2 参与者:美联社 时间: null 地点: null 对象: null 动作:报道 
eid:e3 参与者: null 时间:27日早晨 地点:印尼中爪哇省日惹市附近 对象: null 动作:强震 
eid:e4 参与者:至少309人 时间: null 地点: null 对象: null 动作:死亡 
eid:e5 参与者:数百人 时间: null 地点: null 对象: null 动作:受伤 
eid:e6 参与者: null 时间: null 地点: null 对象:大批房屋 动作:夷为平地 
eid:e7 参与者:库斯马万托 时间: null 地点: null 对象: null 动作:接受采访 
eid:e8 参与者: null 时间: null 地点: null 对象: null 动作:说 
eid:e9 参与者:中央政府 时间: null 地点: null 对象: null 动作:告诉 
eid:e10 参与者: null 时间: null 地点: null 对象: null 动作:提供援助 
eid:e11 参与者:大量人员 时间: null 地点: null 对象: null 动作:伤亡 
eid:e12 参与者: null 时间: null 地点: null 对象:房屋 动作:夷为平地 
eid:e13 参与者:苏班迪 时间: null 地点: null 对象: null 动作:说 
eid:e14 参与者:我们 时间: null 地点: null 对象: null 动作:淹没 
relType: Causal effect_eid: e4 cause_eid: e3 
relType: Causal effect_eid: e5 cause_eid: e3 
relType: Causal effect_eid: e6 cause_eid: e3 
thoughtcontent_eids: e3-e14 thoughtevent_eid: e2 relType: Thoughtcontent 
thoughtcontent_eids: e9-e12 thoughtevent_eid: e8 relType: Thoughtcontent 
thoughtcontent_eids: e14 thoughtevent_eid: e13 relType: Thoughtcontent 
thoughtcontent_eids: e2-e14 thoughtevent_eid: e1 relType: Thoughtcontent 
第10文件结束
eid:e1 参与者:印度尼西亚官员 时间:5月27日 地点: null 对象: null 动作:表示 
eid:e2 参与者: null 时间:当天 地点:爪哇省 对象: null 动作:地震 
eid:e3 参与者: null 时间: null 地点: null 对象:一些建筑 动作:倒塌 
eid:e4 参与者:至少51人 时间: null 地点: null 对象: null 动作:死亡 
eid:e5 参与者:美联社 时间: null 地点: null 对象: null 动作:报道 
eid:e6 参与者:美国地质勘测机构 时间: null 地点: null 对象: null 动作:称 
eid:e7 参与者: null 时间:凌晨5点54分左右 地点: null 对象: null 动作:地震 
eid:e8 参与者:医院方面 时间: null 地点: null 对象: null 动作:称 
eid:e9 参与者:51人 时间: null 地点: null 对象: null 动作:死亡 
eid:e10 参与者:数十名伤员 时间: null 地点:医院 对象: null 动作:送往 
eid:e11 参与者: null 时间: null 地点: null 对象: null 动作:治疗 
eid:e12 参与者:印尼警方 时间: null 地点: null 对象: null 动作:表示 
eid:e13 参与者: null 时间:目前 地点: null 对象:电力和通讯系统 动作:瘫痪 
relType: Causal effect_eid: e3 cause_eid: e2 
relType: Causal effect_eid: e4 cause_eid: e2 
relType: Causal effect_eid: e9 cause_eid: e2 
relType: Causal effect_eid: e13 cause_eid: e2 
thoughtcontent_eids: e6-e13 thoughtevent_eid: e5 relType: Thoughtcontent 
thoughtcontent_eids: e9-e11 thoughtevent_eid: e8 relType: Thoughtcontent 
thoughtcontent_eids: e2-e4 thoughtevent_eid: e1 relType: Thoughtcontent 
第11文件结束
eid:e1 参与者:中新网 时间:5月27日 地点: null 对象: null 动作:电 
eid:e2 参与者:《读卖新闻》 时间: null 地点: null 对象: null 动作:报道 
eid:e3 参与者: null 时间:当地时间27日上午6时左右 地点:印度尼西亚爪哇省日惹周边地区 对象: null 动作:地震 
eid:e4 参与者: null 时间: null 地点:人口密集地区 对象: null 动作:地震 
eid:e5 参与者:突破300人 时间:目前 地点: null 对象: null 动作:死亡 
eid:e6 参与者:超过数百 时间: null 地点: null 对象: null 动作:受伤 
eid:e7 参与者:印尼当地媒体 时间: null 地点: null 对象: null 动作:报道 
eid:e8 参与者: null 时间: null 地点:印尼许多城市 对象: null 动作:震动 
eid:e9 参与者: null 时间: null 地点:印尼北部沿海地区 对象: null 动作:震感 
eid:e10 参与者: null 时间: null 地点:爪哇岛中部 对象:许多房屋建筑 动作:倒塌 
eid:e11 参与者: null 时间: null 地点:当地 对象:两个大型综合商业设施 动作:倒塌 
eid:e12 参与者: null 时间: null 地点: null 对象:日惹机场 动作:破坏 
eid:e13 参与者: null 时间: null 地点: null 对象:机场塔台 动作:受损 
eid:e14 参与者: null 时间: null 地点: null 对象:机场 动作:关闭 
eid:e15 参与者:日本驻印尼雅加达大使馆 时间: null 地点: null 对象: null 动作:报道 
eid:e16 参与者: null 时间: null 地点: null 对象: null 动作:地震 
eid:e17 参与者:91名日本人 时间: null 地点:日惹 对象: null 动作:停留 
eid:e18 参与者: null 时间:目前 地点: null 对象:消息 动作:收到 
relType: Causal effect_eid: e5 cause_eid: e3 
relType: Causal effect_eid: e6 cause_eid: e3 
relType: Causal effect_eid: e8 cause_eid: e3 
relType: Causal effect_eid: e9 cause_eid: e3 
relType: Causal effect_eid: e10 cause_eid: e3 
relType: Causal effect_eid: e11 cause_eid: e3 
relType: Causal effect_eid: e12 cause_eid: e3 
relType: Causal effect_eid: e13 cause_eid: e3 
relType: Accompany 
thoughtcontent_eids: e3-e18 thoughtevent_eid: e2 relType: Thoughtcontent 
thoughtcontent_eids: e2-e18 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e8-e14 thoughtevent_eid: e7 relType: Thoughtcontent 
thoughtcontent_eids: e16-e18 thoughtevent_eid: e15 relType: Thoughtcontent 
第12文件结束
eid:e1 参与者:印度媒体 时间:19日 地点: null 对象: null 动作:报道 
eid:e2 参与者: null 时间:18日18时10分 地点:印度北部锡金邦 对象: null 动作:地震 
eid:e3 参与者:至少56人 时间:截至北京时间19日晚些时候 地点:印度、尼泊尔 对象: null 动作:死亡 
eid:e4 参与者:200多人 时间: null 地点: null 对象: null 动作:受伤 
eid:e5 参与者: null 时间: null 地点: null 对象:报道 动作:说 
eid:e6 参与者:7人 时间:目前 地点: null 对象: null 动作:死亡 
eid:e7 参与者:23人 时间: null 地点: null 对象: null 动作:受伤 
eid:e8 参与者: null 时间: null 地点:我国西藏自治区 对象:地震应急预案二级响应 动作:启动 
eid:e9 参与者:国家减灾委、民政部 时间:9月19日10时30分 地点: null 对象:国家四级救灾应急响应 动作:启动 
eid:e10 参与者:工作组 时间: null 地点: null 对象: null 动作:派 
eid:e11 参与者: null 时间: null 地点:灾区 对象: null 动作:赴 
eid:e12 参与者: null 时间: null 地点: null 对象:救灾工作 动作:协助开展 
eid:e13 参与者:印度媒体 时间: null 地点: null 对象: null 动作:报道 
eid:e14 参与者: null 时间: null 地点:锡金邦首府甘托克周边地区 对象:山体 动作:滑坡 
eid:e15 参与者: null 时间: null 地点: null 对象:房屋 动作:倒塌 
eid:e16 参与者:56人 时间: null 地点:印度、尼泊尔 对象: null 动作:死亡 
eid:e17 参与者:至少200人 时间: null 地点: null 对象: null 动作:受伤 
eid:e18 参与者: null 时间: null 地点: null 对象:电 动作:断 
eid:e19 参与者: null 时间: null 地点:甘托克 对象:一片黑暗 动作:陷入 
eid:e20 参与者: null 时间: null 地点: null 对象:手机信号和网络 动作:中断 
eid:e21 参与者: null 时间: null 地点: null 对象: null 动作:地震 
eid:e22 参与者: null 时间: null 地点: null 对象: null 动作:余震 
thoughtcontent_eids: e2 thoughtevent_eid: e1 relType: Thoughtcontent 
relType: Causal effect_eid: e3 cause_eid: e2 
relType: Causal effect_eid: e4 cause_eid: e2 
thoughtcontent_eids: e6-e7 thoughtevent_eid: e5 relType: Thoughtcontent 
relType: Follow aevent_eid: e10 bevent_eid: e9 
relType: Accompany 
relType: Accompany 
thoughtcontent_eids: e14-e17 thoughtevent_eid: e13 relType: Thoughtcontent 
relType: Causal effect_eid: e16 cause_eid: e14 
relType: Causal effect_eid: e17 cause_eid: e15 
relType: Causal effect_eid: e19 cause_eid: e18 
relType: Follow aevent_eid: e22 bevent_eid: e21 
第13文件结束
eid:e1 参与者:人民网重庆 时间:5月12日 地点: null 对象: null 动作:电 
eid:e2 参与者: null 时间:今日下午14:30分左右 地点:重庆 对象: null 动作:震动 
eid:e3 参与者:中国国家地震台网 时间: null 地点: null 对象: null 动作:测定 
eid:e4 参与者: null 时间:北京时间2008年5月12日14时28分 地点:四川汶川县 对象: null 动作:地震 
eid:e5 参与者: null 时间:14:30 地点:重庆市渝中区上清寺牛角沱鑫隆达附近 对象:建筑 动作:震动 
eid:e6 参与者:市民 时间: null 地点: null 对象: null 动作:下楼 
eid:e7 参与者: null 时间: null 地点:地势空旷的地带 对象: null 动作:撤离 
eid:e8 参与者: null 时间: null 地点: null 对象:通信信号 动作:中断 
eid:e9 参与者: null 时间:与此同时 地点:重庆沙坪坝区 对象: null 动作:震动 
thoughtcontent_eids: e2-e9 thoughtevent_eid: e1 relType: Thoughtcontent 
relType: Causal effect_eid: e6 cause_eid: e5 
relType: Causal effect_eid: e7 cause_eid: e5 
relType: Causal effect_eid: e8 cause_eid: e6 
relType: Follow aevent_eid: e7 bevent_eid: e6 
第14文件结束
eid:e1 参与者:记者 时间: null 地点: null 对象: null 动作:获悉 
eid:e2 参与者: null 时间: null 地点:四川汶川 对象: null 动作:地震 
eid:e3 参与者: null 时间: null 地点:甘肃中东部地区 对象: null 动作:有感 
eid:e4 参与者:一位农民 时间: null 地点:庆阳市宁县中村乡 对象: null 动作:说 
eid:e5 参与者: null 时间: null 地点: null 对象:地面 动作:摇动 
eid:e6 参与者: null 时间: null 地点: null 对象:桶水 动作:泼洒 
eid:e7 参与者: null 时间: null 地点:空旷处 对象:群众 动作:离家 
eid:e8 参与者: null 时间: null 地点: null 对象: null 动作:躲避 
eid:e9 参与者: null 时间: null 地点:西峰区 对象: null 动作:震感 
eid:e10 参与者:群众 时间: null 地点:大街上 对象: null 动作:离家 
eid:e11 参与者: null 时间: null 地点: null 对象: null 动作:躲避 
eid:e12 参与者:甘肃省地震局 时间: null 地点: null 对象:情况 动作:了解 
thoughtcontent_eids: e2-e3 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e5-e8 thoughtevent_eid: e4 relType: Thoughtcontent 
relType: Causal effect_eid: e3 cause_eid: e2 
relType: Causal effect_eid: e5 cause_eid: e2 
relType: Causal effect_eid: e6 cause_eid: e5 
relType: Causal effect_eid: e10 cause_eid: e9 
relType: Causal effect_eid: e11 cause_eid: e9 
第15文件结束
eid:e1 参与者:新华社北京 时间:12月23日 地点: null 对象: null 动作:电 
eid:e2 参与者:国家地震台网 时间: null 地点: null 对象: null 动作:测定 
eid:e3 参与者: null 时间:12月23日8时4分 地点:台湾省高雄县 对象: null 动作:地震 
thoughtcontent_eids: e2-e3 thoughtevent_eid: e1 relType: Thoughtcontent 
第16文件结束
eid:e1 参与者: null 时间: null 地点: null 对象:美国地质勘探局地震信息网 动作:消息 
eid:e2 参与者: null 时间:当地时间7日15时37分 地点:哥伦比亚东北部桑坦德省 对象: null 动作:地震 
eid:e3 参与者: null 时间:目前 地点: null 对象: null 动作:报道 
eid:e4 参与者: null 时间: null 地点: null 对象:美国地质勘探局地震信息网数据 动作:显示 
eid:e5 参与者:哥伦比亚媒体 时间: null 地点: null 对象: null 动作:报道说 
eid:e6 参与者:洛斯桑托斯市市长卡洛斯・托拉 时间: null 地点: null 对象: null 动作:采访 
eid:e7 参与者: null 时间: null 地点: null 对象: null 动作:说 
eid:e8 参与者: null 时间:20秒左右 地点: null 对象: null 动作:地震 
eid:e9 参与者:很多市民 时间: null 地点:街上 对象: null 动作:跑 
eid:e10 参与者:哥伦比亚防灾部门 时间:目前 地点: null 对象: null 动作:组织 
eid:e11 参与者: null 时间: null 地点: null 对象:情况 动作:调查 
thoughtcontent_eids: e2-e3 thoughtevent_eid: e1 relType: Thoughtcontent 
relType: Accompany 
thoughtcontent_eids: e8-e9 thoughtevent_eid: e7 relType: Thoughtcontent 
relType: Follow aevent_eid: e9 bevent_eid: e8 
relType: Follow aevent_eid: e11 bevent_eid: e10 
第17文件结束
eid:e1 参与者:新华社圣何塞 时间:1月9日 地点: null 对象: null 动作:电 
eid:e2 参与者:哥斯达黎加红十字会 时间:9日 地点: null 对象: null 动作:证实 
eid:e3 参与者: null 时间:8日 地点: null 对象: null 动作:地震 
eid:e4 参与者:6人 时间: null 地点: null 对象: null 动作:死亡 
eid:e5 参与者:91人 时间: null 地点: null 对象: null 动作:受伤 
eid:e6 参与者:42人 时间: null 地点: null 对象: null 动作:失踪 
eid:e7 参与者: null 时间: null 地点: null 对象: null 动作:地震 
eid:e8 参与者:至少2647人 时间: null 地点: null 对象: null 动作:受灾 
eid:e9 参与者:1228人 时间: null 地点: null 对象: null 动作:无家可归 
eid:e10 参与者:哥斯达黎加国家紧急情况委员会 时间:目前 地点:震中附近区域 对象: null 动作:救援 
eid:e11 参与者: null 时间: null 地点: null 对象:10架直升机 动作:出动 
eid:e12 参与者: null 时间: null 地点:灾区 对象: null 动作:前往 
eid:e13 参与者:被困民众 时间: null 地点: null 对象: null 动作:救助 
eid:e14 参与者: null 时间:8日 地点:哥斯达黎加首都圣何塞附近 对象: null 动作:地震 
eid:e15 参与者: null 时间: null 地点:圣何塞市 对象: null 动作:震感 
eid:e16 参与者: null 时间:截至9日上午10时 地点:该地区 对象: null 动作:余震 
thoughtcontent_eids: e2-e16 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e4-e6 thoughtevent_eid: e3 relType: Thoughtcontent 
relType: Causal effect_eid: e4 cause_eid: e3 
relType: Causal effect_eid: e5 cause_eid: e3 
relType: Causal effect_eid: e6 cause_eid: e3 
relType: Causal effect_eid: e8 cause_eid: e7 
relType: Causal effect_eid: e9 cause_eid: e7 
relType: Causal effect_eid: e15 cause_eid: e14 
第18文件结束
eid:e1 参与者:中新社昆明 时间:月三十日 地点: null 对象: null 动作: null 
eid:e2 参与者: null 时间:八月三十日十六时三十分 地点:四川省攀枝花市仁和区与四川省凉山彝族自治州会理县交界处 对象: null 动作:地震 
eid:e3 参与者: null 时间: null 地点:云南省的楚雄 对象: null 动作:震感 
eid:e4 参与者: null 时间:目前 地点: null 对象: null 动作:报告 
eid:e5 参与者:记者 时间: null 地点: null 对象: null 动作:致电 
eid:e6 参与者:工作人员 时间: null 地点: null 对象: null 动作:介绍 
eid:e7 参与者: null 时间: null 地点:该县 对象: null 动作:震感 
eid:e8 参与者:县委书记 时间: null 地点:该县地震局 对象: null 动作:赶到 
eid:e9 参与者: null 时间: null 地点: null 对象: null 动作:会议 
eid:e10 参与者:永仁县 时间: null 地点: null 对象: null 动作:电话 
eid:e11 参与者:从乡镇到居委会 时间: null 地点: null 对象:人员伤亡情况 动作:统计 
eid:e12 参与者:一位值班官员 时间: null 地点: null 对象: null 动作:介绍 
eid:e13 参与者:该县的村镇 时间: null 地点: null 对象: null 动作: null 
eid:e14 参与者: null 时间: null 地点: null 对象:房屋 动作:倒塌 
eid:e15 参与者: null 时间: null 地点:县城 对象:一些砖墙 动作:倒塌 
eid:e16 参与者: null 时间: null 地点: null 对象:房屋顶瓦片 动作:破损 
eid:e17 参与者:该县地震局相关人士 时间: null 地点: null 对象: null 动作:透露 
eid:e18 参与者: null 时间: null 地点: null 对象:手机通讯 动作:中断 
eid:e19 参与者:乡镇的统计数据 时间: null 地点: null 对象: null 动作:汇总 
eid:e20 参与者: null 时间: null 地点:昆明 对象: null 动作:震感 
eid:e21 参与者:许多市民 时间: null 地点:街头 对象: null 动作:走上 
eid:e22 参与者: null 时间: null 地点: null 对象:通讯 动作:中断 
eid:e23 参与者: null 时间: null 地点: null 对象: null 动作:恢复 
eid:e24 参与者: null 时间: null 地点:华坪 对象: null 动作:震感 
eid:e25 参与者:记者 时间: null 地点: null 对象: null 动作:发稿 
eid:e26 参与者: null 时间: null 地点: null 对象:报告 动作:收到 
thoughtcontent_eids: e1-e26 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e7-e9 thoughtevent_eid: e6 relType: Thoughtcontent 
thoughtcontent_eids: e13-e16 thoughtevent_eid: e12 relType: Thoughtcontent 
thoughtcontent_eids: e18-e19 thoughtevent_eid: e17 relType: Thoughtcontent 
relType: Causal effect_eid: e3 cause_eid: e2 
relType: Causal effect_eid: e7 cause_eid: e2 
relType: Causal effect_eid: e13 cause_eid: e7 
relType: Causal effect_eid: e14 cause_eid: e7 
relType: Causal effect_eid: e15 cause_eid: e7 
relType: Causal effect_eid: e16 cause_eid: e7 
relType: Causal effect_eid: e18 cause_eid: e2 
relType: Causal effect_eid: e19 cause_eid: e18 
relType: Causal effect_eid: e24 cause_eid: e2 
relType: Accompany 
第19文件结束
eid:e1 参与者:新华网昆明 时间:5月12日 地点: null 对象: null 动作:电 
eid:e2 参与者: null 时间:12日 地点:四川 对象: null 动作:地震 
eid:e3 参与者: null 时间: null 地点:云南的昭通等地 对象:部分房屋 动作:倒损 
eid:e4 参与者:吴国华 时间: null 地点: null 对象: null 动作:介绍 
eid:e5 参与者: null 时间: null 地点:昆明 对象: null 动作:震感 
eid:e6 参与者:记者 时间: null 地点:昭通市 对象: null 动作:感觉 
eid:e7 参与者: null 时间:几分钟 地点: null 对象: null 动作:震感 
eid:e8 参与者:记者 时间: null 地点: null 对象: null 动作:了解 
eid:e9 参与者: null 时间:到当日16时许 地点:昭通市 对象: null 动作:报告 
eid:e10 参与者:徐家金 时间: null 地点: null 对象: null 动作:介绍 
eid:e11 参与者: null 时间: null 地点:昭通 对象: null 动作:震感 
eid:e12 参与者: null 时间:当时 地点: null 对象:有的房屋 动作:晃动 
eid:e13 参与者: null 时间: null 地点: null 对象:水 动作:震荡 
eid:e14 参与者: null 时间: null 地点: null 对象:电话 动作:中断 
eid:e15 参与者: null 时间: null 地点: null 对象:一些老房子 动作:垮 
eid:e16 参与者:当地地震部门 时间:目前 地点: null 对象:震情 动作:收集 
thoughtcontent_eids: e2-e16 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e11-e15 thoughtevent_eid: e10 relType: Thoughtcontent 
relType: Causal effect_eid: e3 cause_eid: e2 
relType: Causal effect_eid: e5 cause_eid: e2 
relType: Causal effect_eid: e6 cause_eid: e2 
relType: Causal effect_eid: e12 cause_eid: e11 
relType: Causal effect_eid: e13 cause_eid: e11 
relType: Causal effect_eid: e14 cause_eid: e11 
relType: Causal effect_eid: e15 cause_eid: e11 
relType: Accompany 
第20文件结束
eid:e1 参与者:中新社成都 时间:五月十二日 地点: null 对象: null 动作:电 
eid:e2 参与者:记者 时间: null 地点: null 对象: null 动作:获悉 
eid:e3 参与者: null 时间: null 地点:成都市 对象: null 动作:余震 
eid:e4 参与者: null 时间: null 地点:市区主要街道 对象:房屋倒塌现象 动作:看到 
eid:e5 参与者: null 时间: null 地点:四川省阿坝州汶川县境内 对象: null 动作:地震 
eid:e6 参与者: null 时间: null 地点:震区 对象:通讯 动作:中断 
eid:e7 参与者: null 时间: null 地点:绵阳市三台县 对象:水塔 动作:倒塌 
eid:e8 参与者:一人 时间: null 地点: null 对象: null 动作:死亡 
eid:e9 参与者:人员 时间: null 地点:安县 对象: null 动作:受伤 
eid:e10 参与者:成都移动 时间: null 地点: null 对象:通讯 动作:维修 
eid:e11 参与者: null 时间: null 地点: null 对象:有关详情 动作:调查了解 
eid:e12 参与者:蒋巨峰 时间: null 地点: null 对象: null 动作:召集 
eid:e13 参与者: null 时间: null 地点: null 对象: null 动作:会议 
eid:e14 参与者: null 时间: null 地点: null 对象:相关工作 动作:安排部署 
eid:e15 参与者: null 时间: null 地点: null 对象: null 动作:安排 
eid:e16 参与者:成都空军 时间: null 地点: null 对象:直升机 动作:派遣 
eid:e17 参与者: null 时间: null 地点:震区 对象: null 动作:前往 
eid:e18 参与者: null 时间: null 地点: null 对象:震情灾情 动作:调查了解 
eid:e19 参与者:省地震局 时间:十二日十五时十五分 地点: null 对象:新闻发布会 动作:召开 
eid:e20 参与者: null 时间: null 地点: null 对象:震情灾情 动作:通报 
eid:e21 参与者:四川省地震局 时间:目前 地点: null 对象:震后趋势会商工作 动作:组织 
thoughtcontent_eids: e2-e21 thoughtevent_eid: e1 relType: Thoughtcontent 
thoughtcontent_eids: e3-e4 thoughtevent_eid: e2 relType: Thoughtcontent 
relType: Causal effect_eid: e6 cause_eid: e5 
relType: Causal effect_eid: e7 cause_eid: e5 
relType: Causal effect_eid: e8 cause_eid: e7 
relType: Causal effect_eid: e9 cause_eid: e7 
relType: Composite 
中间省略复制
第63文件结束
一个文件的事件总数:1053

现在我又重新改了一下代码想变成json的格式(对于转换好的数据):

# coding=utf-8
#引入parse的包
from xml.dom.minidom import parse
import os.path

path = "D:\CEC2.3\地震"
files = os.listdir(path)  # 得到文件夹下所有文件名称
s = []
#事件数目
count = 0
#文件数目
flag = 0
for xmlFile in files:  # 遍历文件夹
    if flag==0:
        print("[")
    flag = flag+1
    print("{"+"\"" + "第" + str(flag) + "文件开始" + "\"" + ":"+ "[")
    if not os.path.isdir(xmlFile):  # 判断是否是文件夹,不是文件夹才打开
        # xml文件读取操作
        # 将获取的xml文件名送入到dom解析
        doc = parse(os.path.join(path, xmlFile))  # 先把ml文件加载进来
        root = doc.documentElement  # 获取元素的根节点
        Events = root.getElementsByTagName('Event')  # 找到子节点,得到的是一个数组

        for Event in Events:  # 把所有的事件子节点进行遍
            # node_name = Event.hasAttribute("eid")
            count=count+1
            #打印事件的eid
            print("{"+"\""+"eid"+"\""+":"+"\""+ Event.getAttribute("eid")+"\"", end='' + ",")
            if len(Event.getElementsByTagName("Participant")):
                participant = Event.getElementsByTagName("Participant")[0]  # 根据标签名找到,并且输出第一个元素
                try:
                    print("\""+"参与者"+"\""+":"+"\""+"%s" % participant.childNodes[0].data+"\"", end='' + ",")  # 输出标签名的子节点的第一个值,并转为data类型
                except:
                    print("\""+"参与者+"+"\""+":"+"\""+"null"+"\"", end='' + "," )  # 输出标签名的子节点的第一个值,并转为data类型
            else:
                print("\""+"参与者"+"\""+":"+"\""+"null"+"\"", end='' + ",")
            if len(Event.getElementsByTagName("Time")):
                time = Event.getElementsByTagName("Time")[0]  # 根据标签名找到,并且输出第一个元素
                try:
                    print("\""+"时间"+"\""+":"+"\""+"%s" % time.childNodes[0].data+"\"",end=''+ ",")  # 输出标签名的子节点的第一个值,并转为data类型
                except:
                    print("\""+"时间"+"\""+":"+"\""+"null",end='' + ",")
            else:
                print("\""+"时间"+"\""+":"+"\""+"null"+"\"",end='' + ",")
            if len(Event.getElementsByTagName("Location")):
                location = Event.getElementsByTagName("Location")[0]
                try:
                    print("\""+"地点"+"\""+":"+"\""+"%s" % location.childNodes[0].data+"\"", end='' + ",")
                except:
                    print("\""+"地点"+"\""+":"+"\""+"null"+"\"",end=''+ ",")
            else:
                print("\""+"地点"+"\""+":"+"\""+"null"+"\"", end='' + ",")
            if len(Event.getElementsByTagName("Object")):
                object = Event.getElementsByTagName("Object")[0]
                try:  # 判断是否有data这个属性有这个属性则输出
                    print("\""+"对象"+"\""+":"+"\""+"%s"% object.childNodes[0].data+"\"", end='' + ",")
                except:
                    print("\""+"对象"+"\""+":"+"\""+"null", end='' + ",")
            else:
                print("\""+"对象"+"\""+":"+"\""+" null"+"\"",end='' + ",")
            if len(Event.getElementsByTagName("Denoter")):
                denoter = Event.getElementsByTagName("Denoter")[0]
                try:  # 判断是否有data这个属性有这个属性则输出
                    print("\""+"动作"+"\""+":"+"\""+"%s" % denoter.childNodes[0].data+"\"", end='')
                except:
                    print("\""+"动作"+"\""+":"+"\""+"null"+"\"",end='')
            else:
                print("\""+"动作"+"\""+":"+"\""+"null"+"\"",end='')
            print("}"+",")
        print("]"+",")
    eRelation = root.getElementsByTagName('eRelation')

    print("\"" + "relType" + "\"" + ":" + "[")
    for er in eRelation:
        if (er.hasAttribute("effect_eid")or er.hasAttribute("cause_eid") or er.hasAttribute("aevent_eid") or er.hasAttribute("bevent_eid")):
            print("{")
        # if(er.hasAttribute("thoughtcontent_eids")):
        #     print("thoughtcontent_eids: "+er.getAttribute("thoughtcontent_eids"),end=""+" ")
        # if (er.hasAttribute("thoughtevent_eid")):
        #     print("thoughtevent_eid: "+er.getAttribute("thoughtevent_eid"),end=""+" ")

        # if (er.hasAttribute("relType")):
        #     print(er.getAttribute("relType"),end=""+" ")
        # print("{")
        if (er.hasAttribute("effect_eid")):
            print("\""+"effect_eid"+"\""+":"+"\""+ er.getAttribute("effect_eid")+"\""+",", end="")
        if (er.hasAttribute("cause_eid")):
            print("\""+"cause_eid"+"\""+":"+"\""+ er.getAttribute("cause_eid")+"\"", end="")
        if (er.hasAttribute("aevent_eid")):
            print("\""+"aevent_eid"+"\""+":"+"\""+ er.getAttribute("aevent_eid")+"\""+",",end="")
        if (er.hasAttribute("bevent_eid")):
            print("\""+"bevent_eid"+"\""+":"+"\""+ er.getAttribute("bevent_eid")+"\"", end="")
        if (er.hasAttribute("effect_eid") or er.hasAttribute("cause_eid") or er.hasAttribute( "aevent_eid") or er.hasAttribute("bevent_eid")):
            print("}"+",")

    print("]"+ "}"+",")

print("]")
print("一个文件的事件总数:"+str(count))

得到数据格式:

[{
		"第1文件开始": [{
				"eid": "e1",
				"参与者": "新华网上海",
				"时间": "5月12日",
				"地点": "null",
				"对象": " null",
				"动作": "电"
			},
			{
				"eid": "e2",
				"参与者": "上海市政府新闻办",
				"时间": "12日15时45分",
				"地点": "null",
				"对象": " null",
				"动作": "称"
			},
			{
				"eid": "e3",
				"参与者": "上海市地震局",
				"时间": "刚刚",
				"地点": "null",
				"对象": "消息",
				"动作": "提供"
			},
			{
				"eid": "e4",
				"参与者": "我国地震台网",
				"时间": "null",
				"地点": "null",
				"对象": " null",
				"动作": "测定"
			},
			{
				"eid": "e5",
				"参与者": "null",
				"时间": "5月12日14时28分",
				"地点": "四川汶川县",
				"对象": " null",
				"动作": "地震"
			},
			{
				"eid": "e6",
				"参与者": "建筑",
				"时间": "null",
				"地点": "null",
				"对象": " null",
				"动作": "有感"
			}
		],
		"relType": [{
			"effect_eid": "e5",
			"cause_eid": "e4"
		}]
	},
	{
		"第2文件开始": [{
				"eid": "e1",
				"参与者": "中新网",
				"时间": "4月5日",
				"地点": "null",
				"对象": " null",
				"动作": "电"
			},
			{
				"eid": "e2",
				"参与者": "null",
				"时间": "null",
				"地点": "云南昭通市防震减灾局",
				"对象": "官方网站",
				"动作": "消息"
			},
			{
				"eid": "e3",
				"参与者": "null",
				"时间": "截至5日14时",
				"地点": "云南昭通永善县",
				"对象": " null",
				"动作": "地震"
			},
			{
				"eid": "e4",
				"参与者": "21人",
				"时间": "null",
				"地点": "null",
				"对象": " null",
				"动作": "受伤"
			},
			{
				"eid": "e5",
				"参与者": "null",
				"时间": "null",
				"地点": "null",
				"对象": "民房",
				"动作": "受损"
			},
			{
				"eid": "e6",
				"参与者": "null",
				"时间": "null",
				"地点": "null",
				"对象": " null",
				"动作": "倒塌"
			},
			{
				"eid": "e7",
				"参与者": "null",
				"时间": "null",
				"地点": "null",
				"对象": "6个乡镇",
				"动作": "受损"
			},
			{
				"eid": "e8",
				"参与者": "null",
				"时间": "目前",
				"地点": "null",
				"对象": "电力",
				"动作": "修复"
			},
			{
				"eid": "e9",
				"参与者": "null",
				"时间": "null",
				"地点": "当地",
				"对象": "帐篷",
				"动作": "调拨"
			},
			{
				"eid": "e10",
				"参与者": "人",
				"时间": "null",
				"地点": "null",
				"对象": " null",
				"动作": "转移"
			},
			{
				"eid": "e11",
				"参与者": "null",
				"时间": "4月5日6时40分",
				"地点": "云南昭通永善县",
				"对象": " null",
				"动作": "地震"
			},
			{
				"eid": "e12",
				"参与者": "null",
				"时间": "null",
				"地点": "当地",
				"对象": " null",
				"动作": "震感"
			},
			{
				"eid": "e13",
				"参与者": "null",
				"时间": "null",
				"地点": "成都等四川多地",
				"对象": " null",
				"动作": "震感"
			}
		],
		"relType": [{
				"effect_eid": "e4",
				"cause_eid": "e3"
			},
			{
				"effect_eid": "e5",
				"cause_eid": "e3"
			},
			{
				"effect_eid": "e6",
				"cause_eid": "e3"
			},
			{
				"effect_eid": "e7",
				"cause_eid": "e3"
			},
			{
				"aevent_eid": "e12",
				"bevent_eid": "e11"
			},
			{
				"aevent_eid": "e13",
				"bevent_eid": "e11"
			}
		]
	}
]

以上复制的数据全都少,防止看着太多,因为想做知识图谱,所以弄成json文件方便可视化,下篇会弄成事件与事件的相关性的可视化的知识图谱。

你可能感兴趣的:(知识图谱的数据预处理)