此JSON结构是否适合Pandas寻找的内容?通过将数据从LDAP结构中拉出,希望可以采用多值属性并创建多行。我相信逻辑已得到解决,下面的代码片段显示了这一点,因为同一位用户的DirXML-Associations值在两条不同的线上是不同的。我最终将#分隔的值分成自己的列。所有行都将具有在属性上定界的GUID值的唯一值。该数据帧的重点是查找GUID值的总数,活动的数量,在给定时间范围内登录的用户数量以及禁用的用户数量。完成这些问题后,我希望将其应用于LDAP结构中的任何属性,在该结构中LDAP身份验证源可以更轻松地分析数据。
我清理了一些JSON,并且JSONLint显示了有效的语法。但是,当尝试使用pandas或json库将其插入时,仍然会出现错误。
[{“ dn”:“ [cn = asmith,ou = Users,o = Data]”,“ loginDisabled”:[],“ cn”:[“ asmith”],“ DirXML-Associations”:[“ cn =数据收集服务驱动程序,cn = DriverSet,o = system#1#7DBC9BBB-58CF-944d-B00A-7DBC9BBB58CF“],” lastLoginTime“:[],” fullName“:[” Alma Smit“]},{” dn“:” [cn = asmith,ou = Users,o = Data]“,” loginDisabled“:[],” cn“:[” asmith“],” DirXML-Associations“:[” cn =数据收集服务驱动程序,cn = DriverSet,o = system#2#7DBC9BBB-58CF-944d-B00A-7DBC9BBB5FFF“],” lastLoginTime“:[],” fullName“:[” Alma Smit“]},{” dn“:” cn = uaadmin,ou = SA,o = Data“,” DirXML-Associations“:[” cn =数据收集服务驱动程序,cn = DriverSet,o = system#1#146D89E1-0A57-b244-B9D1-146D89E10A57“],” loginDisabled “:[],” fullName“:[],” lastLoginTime“:[” 2019-05-09 20:36:08 + 00:00“],” cn“:[” uaadmin“]}]
对于熊猫,我收到以下错误(当JSON行被注释掉时):
跟踪(最近一次通话最近一次):文件“ /Users/fredpatterson/PycharmProjects/license/license.py”,第163行,在df = pd.read_json('cleaned.json',lines = True,orient =“列”)文件“ /Users/fredpatterson/.local/share/virtualenvs/license-Vg_kJ9Gf/lib/python3.7/site-packages/pandas/io/json/json.py”,行427,在read_json结果= json_reader中.read()读取自己中的文件“ /Users/fredpatterson/.local/share/virtualenvs/license-Vg_kJ9Gf/lib/python3.7/site-packages/pandas/io/json/json.py”,第534行。 _combine_lines(data.split('\ n'))文件“ /Users/fredpatterson/.local/share/virtualenvs/license-Vg_kJ9Gf/lib/python3.7/site-packages/pandas/io/json/json.py” _get_object_parser中的556行,obj = FrameParser(json,** kwargs).parse()File“ /Users/fredpatterson/.local/share/virtualenvs/license-Vg_kJ9Gf/lib/python3.7/site-packages/pandas/ io / json / json.py“,第652行,解析self._parse_no_numpy()文件” /Users/fredpatterson/.local/share/virtualenvs/license-Vg_kJ9Gf/lib/python3.7/site-packages/pandas/io / js on / json.py“,第871行,在_parse_no_numpy中加载(json,precise_float = self.precise_float),dtype = None)ValueError:期望的对象或值
对于JSON,我得到:
跟踪(最近一次通话最近一次):文件“ /Users/fredpatterson/PycharmProjects/license/license.py”,第158行,位于jdata = json.loads(file)文件“ / usr / local / Cellar / python / 3.7.3 / Frameworks / Python.framework / Versions / 3.7 / lib / python3.7 / json / init.py“,第348行,在加载中返回_default_decoder.decode文件” / usr / local / Cellar / python / 3.7.3 / Frameworks / Python.framework / Versions / 3.7 / lib / python3.7 / json / decoder.py“,第337行,在解码obj中,end = self.raw_decode(s,idx = _w(s,0) .end())文件“ /usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7/lib/python3.7/json/decoder.py”,行355,在raw_decode中引发JSONDecodeError (无json.decoder.JSONDecodeError中的“期望值”,s,err.value):期望值:第1行第1列(字符0)
代码段:file ='cleaned.json'jdata = json.loads(file)pd.set_option('display.max_columns',9)pd.set_option('display.max_colwidth',180)
jsondata2 = json.load('cleaned.json') 打印(jsondata2) df = pd.read_json('cleaned.json',lines = True,orient =“ columns”)
df = pd.DataFrame(jdata)