Я пишу сценарий Python 3, который подключается к серверу LDAP, ищет идентификаторы пользователей на основе списка, созданного из файла CSV. Затем он печатает и записывает атрибуты пользователей в файл CSV. Как правило, я могу заставить работать любой из моих сценариев, как только получу желаемые данные для печати. Но в этом случае правильные данные «печатаются» на экране, а неправильные данные сохраняются в моем CSV. Как вы увидите в коде, я даже попытался назначить каждый атрибут как переменную в l oop, но это не помогло. (Закомментировано.) CSV показывает только одну строку, как будто мои переменные исчезли:
Результирующий CSV
Я был бы очень признателен за любую помощь! Я что-то делаю не так или это просто невозможно?
#Connect to LDAP
from ldap3 import Server, Connection, SUBTREE
server = Server('ldap.company.com')
c = Connection(server)
c.bind()
import csv
#open a csv with user IDs, one per row and drops the first "title row."
with open('data/users.csv', newline='') as f:
reader = csv.reader(f)
your_list = [tuple(row) for row in reader]
new_list = your_list.pop(0)
res = [''.join(i) for i in your_list]
#Searching LDAP for the users in users.csv and printing/saving to a new csv 'cn', 'title', 'ou.'
def user_search(res):
for x in res:
entry_generator = c.extend.standard.paged_search(search_base = 'ou=People,o=Company,c=com',
search_filter = '(userid='+(x)+')',
search_scope = SUBTREE,
attributes = ['cn', 'title', 'ou'],
paged_size = 5,
generator=True)
with open('data/employee_records.csv', 'w') as csvfile:
for entry in entry_generator:
#basedn=(entry['dn']) I tried to assign each attibute to a spefic variable, issue persists.
#userinfo=(entry['attributes']) I tried to assign each attibute to a spefic variable, issue persists.
print(entry['dn'], entry['attributes'])
#print(userinfo) I tried to assign each attibute to a spefic variable, issue persists.
csvwriter = csv.writer(csvfile)
csvwriter.writerow(userinfo)
#Run search, close connection to LDAP
user_search(res)
c.unbind()