2016-10-13 3 views
0

Ich habe eine Liste von Bluetooth-Tags, die einige Informationen senden. Ich möchte eine Sammlung für jeden MAC (Addr) von Tags erstellen. Wie kann ich es tun? Hier sind die Einstellungen, die ich verwende, und ein Beispiel für einen JSON, den ich erhalte.Verschiedene Sammlung in EVE

DOMAIN = { 
'ble': [ 
    'additional_lookup': { 
     'url': 'regex("[\w]+")', 
     'field': 'name', 
     }, 
    'schema': { 
     'address': { 
      'type': 'string' 
     }, 
     'rssi': { 
      'type': 'string' 
     }, 
     'name': { 
      'type': 'string', 
      'unique': True 
     }, 
     'tx_power': { 
      'type': 'string' 
     }, 
     'r_time': { 
      'type': 'string' 
     } 
    } 
] 
} 

Dies ist ein Beispiel für JSON, die ich erhalten werde:

[{ 
    "addr": "ff:ff:00:00:2a:15", 
    "datetime": "2016-10-06T05:19:38.+0000", 
    "name": "ITAG", 
    "rssi": -61, 
    "txpw": 0 
}, { 
    "addr": "66:55:44:33:22:10", 
    "datetime": "2016-10-06T05:19:38.+0000", 
    "name": "NULL", 
    "rssi": -61, 
    "txpw": -100 
}, 

{ 
    "addr": "47:c9:df:25:34:b1", 
    "datetime": "2016-10-06T05:19:38.+0000", 
    "name": "NULL", 
    "rssi": -94, 
    "txpw": -100 
} 
] 

Ich habe versucht, zu routen mit Flask, aber es ist zu schaffen keine neuen Kollektionen. Hier der Code:

from eve import Eve 
import Flask 

app = Eve() 

@app.route('/ble', methods=['POST']) 
def create_ble(): 
    data = request.get_json() 
    json_data = json.loads(data) 
    quant = len(json_data['beacon_list']) 
    for i in range(0, quant-1): 
     beacon = json_data[i] 
     addr = json_data[i]['addr'] 
     beacon = json.dumps(beacon) 
     mongo.db[addr].insert(beacon) 

    return 


if __name__ == '__main__': 
    app.run() 
+0

Was haben Sie also versucht? – UnholySheep

Antwort

0

Sie benötigen dafür keine zusätzliche Route. Eve unterstützt Masseneinsätze. Senden Sie den Endpunkt json an/ble, aber stellen Sie sicher, dass die Schlüssel Ihren Schema-Schlüsseln entsprechen.

Verwandte Themen