Joe*_*Joe 6 json dictionary python-3.x ldap3
我正在处理我认为是一个简单的问题,但它真的很困惑。我正在使用ldap3模块在 Python 中进行 AD 查询。此查询将数据作为 python 词典的生成器返回。当我type()对数据运行命令时,它确认它是一个字典。
我需要将其转换为 JSON,以便将其写入日志文件。首先,我尝试过,json.dump(data, file)但是当我这样做时,我收到此错误: TypeError: Object of type 'CaseInsensitiveDict' is not JSON serializable
如果我首先尝试将字典转换为字符串,则数据用引号写入,内部字段用单引号留下,因此它不是真正的 JSON - 它看起来像这样: "{'key': 'value'}"
这是我所拥有的:
with open(outfile, 'w') as outfile:
for entry in entry_generator: # Entry is equal to a dictionary of AD attributes
json.dump(entry, outfile) # I have also tried json.dump(str(entry), outfile) etc
Run Code Online (Sandbox Code Playgroud)
我一直在搜索互联网,我看到很多关于requests模块的这个问题,但似乎没有任何东西可以解决我的情况。
对于 ldap3 模块entry_to_json(),我在其他脚本中使用了一种方法。由于生成器,它似乎在这里不起作用,如果有人知道如何再次使其工作,它可以解决我的问题。想法?
Gor*_*Jay 12
尝试将 转换CaseInsensitiveDict为普通的 old dict,如下所示:
json.dump(dict(data), file)
Run Code Online (Sandbox Code Playgroud)
如果有嵌套CaseInsensitiveDicts,这将不起作用。您必须dict从内到外递归地将它们转换为s 。
| 归档时间: |
|
| 查看次数: |
3953 次 |
| 最近记录: |