我有一个发送一些信息的蓝牙标签列表。我想为每个标签的MAC(地址)创建一个集合。我该怎么做?以下是我使用的设置和我接收的示例JSON。
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'
}
}
]
}
这是我收到的JSON示例:
[{
"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
}
]
我尝试使用Flask进行路由,但它没有创建新的收藏集。代码:
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 :(得分:0)
您不需要任何其他路线。 Eve支持批量插入。只需将此json发布到/ ble端点,但请确保密钥与架构密钥匹配。