Pythonic方法嵌套数据?

时间:2016-02-24 22:52:28

标签: json python-2.7

我正在Python 2.7处理取证perl程序的输出。假设你想将下面的数据解析成一个嵌套对象,以便摄入另一个程序(例如splunk等......)

我正在努力构思如何以编程方式呈现数据,而不会让自己陷入庞大的嵌套对象中。我试图在网上找到一些好的资源,以便如何最好地编写嵌套对象,但却失败了。

非常感谢在SO / Python手册上发现的有关此主题的任何其他资源。

原始数据

appcompatflags v.20130930
(NTUSER.DAT, Software) Extracts AppCompatFlags for Windows.


Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\CompatibilityAssistant\Store
Fri Jul 10 11:00:24 2015 - E:\VMware-player-4.0.6-1035888.exe
Fri Jul 10 11:00:24 2015 - C:\Users\aUser\AppData\Local\Microsoft\OneDrive\17.3.5892.0626\FileSyncConfig.exe
Fri Jul 10 11:00:24 2015 - C:\Users\aUser\AppData\Local\Microsoft\OneDrive\Update\OneDriveSetup.exe
Fri Jul 10 11:00:24 2015 - C:\Users\aUser\AppData\Local\Microsoft\OneDrive\17.3.6201.1019\FileSyncConfig.exe
Fri Jul 10 11:00:24 2015 - E:\AdbeRdr11000_mui_Std\Setup.exe

我考虑使用

的字段/值
Top Level Name - NTUser 
'''
I'm not positive this is correct for JSON. The program runs off a declaration of which 
registry I want to parse (e.g. NTUSER, SYSTEM, etc...) Generating a multitude
of results from various plugins found within the program.
'''

Fields : Values

Plugin_Name:     appcompatflags v.20130930, someOtherPlugin
Description:     (NTUSER.DAT, Software) Extracts AppCompatFlags for Windows.
Location:        Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags
Date:            Fri Jul 10 11:00:24 2015, Fri Jul 10 11:00:24 2015, etc...  
Result:          E:\VMware-player-4.0.6-1035888.exe, E:\AdbeRdr11000_mui_Std\Setup.exe

编辑:我认识到这是一个普遍的问题,我仍然是编程的新手,我希望有人可以通过指向我正确的方向来帮助减轻这引起我的头痛。

1 个答案:

答案 0 :(得分:1)

不确定“直接解析为JSON”是什么意思。为了将您拥有的数据转换为JSON格式,您需要通过某种脚本运行它,在这种情况下,我假设您已选择在Python中编写它。在此脚本中,您将把值解析为dict,然后将此dict输出为JSON文件。

以下是您的JSON外观的示例:

{
    "NTUser": {
        "appcompat": {
            "description": "(NTUSER.DAT, Software) Extracts AppCompatFlags for Windows.",
            "location": "Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags",
            "data": [
                        {"date": "Fri Jul 10 11:00:24 2015", "result": "E:\VMware-player-4.0.6-1035888.exe"},
                        {"date": "Fri Jul 10 11:00:24 2015", "result": "E:\AdbeRdr11000_mui_Std\Setup.exe"}
            ]
        },
        "some_other_plugin": {},
    },
    "SomeOtherRegistry": {}
}

关于进一步阅读,Wikipedia page对如何以JSON格式表示各种数据有一些很好的解释和示例。在Python方面,我将了解字典是如何工作的 - 字典将直接映射到JSON,因此使用dicts是至关重要的。