2017-09-28 1 views
0

1.json Datei enthält viele schnüffeln WIFI-Pakete, ich möchte die Mac-Adresse von Empfänger und Sender, die in der ersten "Wlan" Objekt namens "wlan.ra" gefunden werden kann und "wlan.sa". data [0] ist das erste WIFI-Paket.wie man das gleiche Objekt in JSON-Datei mit Python

Q1: Aber wenn ich versuche, die Elemente der wlan nach json Last zu drucken, ist es nur die Elemente des zweiten „wlan“ Objekt zeigen, so gibt es keine „wlan.ra“ und „wlan.sa“ in der Daten.

with open('1.json','r') as json_data: 
    data = json.load(json_data) 
a=data[0] 
print a 

Q2: Es gibt zwei 'wlan' Objekte in meiner JSON-Datei. Wie kann ich die Elemente in diesen beiden 'wlan'-Objekten in ein einziges' wlan'-Objekt zusammenführen?

Das folgende ist mein Code, aber es funktioniert nicht:

with open('1.json','r') as f: 
    data=json.load(f) 
    for i in data: 
     i['_source']['layers']['wlan'].update() 

Screenshot von JSON-Datei:

Wlan obj - 1.json

Antwort

0
''' 
Created on 2017/10/3 

@author: DD 
''' 

import os 

def modify_jsonfile(jsonfile): 
''' 
replace wlan to wlan1/wlan2 
''' 
FILESUFFIX = '_new' # filename suffix 
LBRACKET = '{' # json object delimiter 
RBRACKET = '}' 
INTERSETED = '"wlan"' # string to be replaced 
nBrackets = 0 # stack to record object status 
nextIndex = 1 # next index of wlan 
with open(jsonfile, 'r') as fromJsonFile: 
    fields = os.path.splitext(jsonfile) # generate new filename 
    with open(fields[0] + FILESUFFIX + fields[1], 'w') as toJsonFile: 
     for line in fromJsonFile.readlines(): 
      for ch in line: # record bracket 
       if ch == LBRACKET: 
        nBrackets += 1 
       elif ch == RBRACKET: 
        nBrackets -= 1 
       if nBrackets == 0: 
        nextIndex = 1 
      if (nextIndex == 1 or nextIndex == 2) and line.strip().find(INTERSETED) == 0: # replace string 
       line = line.replace(INTERSETED, INTERSETED[:-1] + str(nextIndex) + INTERSETED[-1]) 
       nextIndex += 1 
      toJsonFile.write(line); 
print 'done.' 

if __name__ == '__main__': 
jsonfile = r'C:\Users\DD\Desktop\1.json'; 
modify_jsonfile(jsonfile) 
Verwandte Themen