gpt4 book ai didi

Python LDIF 解析器

转载 作者:行者123 更新时间:2023-12-01 05:03:42 25 4
gpt4 key购买 nike

我正在尝试解析下面示例 LDIF 文件中的数据。我只想将“LoginID”和“mail”参数的值写入 csv 文件中。

dn: uid=123456789012345,ou=Students,o=system.edu,o=system
LoginId: 0012345
mail: test1@test.edu

dn: uid=543210987654321,ou=Students,o=system.edu,o=system
LoginId: 0067890
mail: test2@test.edu

下面是我在编译时遇到问题的代码

import csv
from ldif import LDIFParser

class ParseRecords(LDIFParser):
def __init__(self,infile,csv_writer):
self.csv_writer = csv_writer
def handle(self,dn,entry):
self.csv_writer.writerow([entry['LoginId'],entry['mail']])

with open('/root/Python_Scripts/LDIF','rb') as infile, open('/root/Python_Scripts/LDIFExtract.csv','wb') as outfile:
csv_writer = csv.writer(outfile)
csv_writer.writerow(['LoginId','mail'])
ParseRecords(infile,csv_writer).parse()

当我编译代码时,出现错误

Traceback (most recent call last):
File "LDIFExtract.py", line 14, in <module>
ParseRecords(infile,csv_writer).parse()
File "/usr/lib/python2.7/dist-packages/ldif.py", line 345, in parse
self._line = self._input_file.readline()
AttributeError: ParseRecords instance has no attribute '_input_file'

感谢任何解决此问题的帮助。

谢谢

最佳答案

您正在覆盖 __init__您继承的类 (LDIFParser) 的函数,其中可能包括类似 self._input_file = infile 的内容。您可以通过调用 LDIFParser.__init__(self, <the arguments that it would use>) 在类中运行构造函数命令。在构造函数内部或者首先不重写构造函数。

关于Python LDIF 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25478224/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com