python - 如何将 Python Fuction 数据导入 Pandas Data-frame
问题描述
我在下面有一个代码,它只是从ldapsearch
命令中获取数据,现在我正在考虑使用 pandas 将数据转换为所需的格式,但我不知道如何将 python 函数数据访问到 Pandas DataFrame 中。
代码 :
import subprocess
def UserID():
LDP = "ldapsearch -h ldap.example.com -xLLLb 'ou=Personal,ou=People,ou=udalt' uid fullName"
proc = subprocess.Popen(LDP, shell=True, stdout=subprocess.PIPE)
info_str = proc.stdout.read().decode('utf8')
str_info = info_str.splitlines()
prefixes = ["uid:", "fullName:"]
for line in str_info:
if line.startswith(tuple(prefixes)):
lines = line
for line in lines.splitlines():
print(line, end=' ' if line.startswith("uid:") else "\n")
UserID()
结果:
uid: khati06610 fullName: Anik sa
uid: khati06648 fullName: Vikur Doom
uid: khati06663 fullName: Gopi sa
uid: khati06718 fullName: Jeff kana
uid: khati10131 fullName: Peter j
uid: khati10152 fullName: Mie sean
来自熊猫处理的所需数据将是:
User ID User Name
khati06610 Anik sa
khati06648 Vikur Doom
khati06663 Gopi sa
khati06718 Jeff kana
khati10131 Peter j
khati10152 Mie sean
解决方案
试试这个,但最好的方法是使用python-ldap
它提供面向对象的 API 来访问 LDAP 并避免字符串解析的开销。
import re
import pandas as pd
search_ = re.compile("uid:\s(.*)\sfullName:\s(.*)")
print(
pd.DataFrame(
[{"User ID": u, "User Name": n} for u, n in search_.findall(line)]
)
)
User ID User Name
0 khati06610 Anik sa
1 khati06648 Vikur Doom
2 khati06663 Gopi sa
3 khati06718 Jeff kana
4 khati10131 Peter j
5 khati10152 Mie sean
推荐阅读
- java - Java调用枚举的静态方法,作为类类型变量传递而不进行强制转换
- html - 如何将鼠标悬停在链接的图像上?(它们是 Wordpress 帖子中的图标)
- ruby-on-rails - ArgumentError:SMTP 收件人地址不能为空:[]
- labview - 如何使用LabVIEW读取文本文件?
- html - 对齐内容使网格项目占用更少的空间
- html - 边距/填充位于 div 之外
- python - 即使 while 循环被评估为假,语句仍在运行?
- scala - 如何在方法中将对象作为参数传递?
- javascript - 我如何存储 Object.keys?
- igraph - igraph :为社区之间的边缘添加形状