Python 中的 SAX 解析器

SAX Parser in Python

提问人:PythonKS 提问时间:2/1/2023 最后编辑:RobertPythonKS 更新时间:2/1/2023 访问量:97

问:

我正在使用 Python SAX 解析器解析文件夹中的 xml 文件,并使用 pandas 在 CSV 中写入输出,但我只从 CSV 中的最后一个文件中获取数据。

我是 Python 的新手,这是第一次尝试 SAX 解析

文件读取:

for dirpath, dirs, files in os.walk(fp1): 
          for filename in files:
            print(files)
            fname = os.path.join(dirpath,filename)
            if fname.endswith('.xml'):
              print(fname)
              #for count in files:
            parser.parse(fname)
 def characters(self, content):
        rows = []
        cols = ["ReporterCite","DecisionDate","CaseName","FileNum","CourtLocation","CourtName","CourtAbbrv","Judge","CaseLength","CourtCite","ParallelCite","CitedCount","UCN"]
        #ReporteCite, DecisionDate, CaseName, FileNum, CourtLocation, CourtName, CourtAbbrv, Judge, CaseLength, CourtCite, ParallelCite, CitedCount, UCN             

        rows.append({"ReporterCite":self.rc,
                     "DecisionDate": self.dd,
                     "CaseName": self.can,
                     "FileNum": self.fn,
                     "CourtLocation": self.loc,
                     "CourtName": self.cn,
                     "CourtAbbrv": self.ca,
                     "Judge": self.j,   
                     "CaseLength": self.cl,
                     "CourtCite": self.cc,
                     "ParallelCite": self.pc,
                     "CitedCount": self.cd,
                     "UCN": self.rn})

        #print(rows)
        df = pd.DataFrame(rows, columns=cols)
        df.to_csv(fp2,index=False)
Python Pandas DataFrame XML 解析 SAX

评论


答:

0赞 Paul-ET 2/1/2023 #1

我假设你总是会覆盖你之前的结果。这是一个熊猫问题,而不是 SAX 问题。你想附加到现有的csv,对吧?如果是这种情况,您必须使用 mode = 'a',例如更多选项,请参阅文档df.to_csv('filename.csv',mode = 'a')

  • “w”打开写入,首先截断文件(默认)
  • “x”打开以进行独占创建,如果文件已存在,则失败
  • “a”打开以供写入,如果存在,则附加到文件末尾

评论

0赞 PythonKS 2/1/2023
非常感谢保罗。这正在起作用,只是我需要找到一种方法来处理重复项。非常感谢