在 tinyDB

问题描述

我在tinyDB中有以下json信息

{
"_default": {
    "1": {
        "status": {
            "timestamp": "2021-03-21T15:12:04.025Z","total_count": 4436
        },"data": [
            {
                "id": 1,"name": "abc"
            },{
                "id": 2,"name": "def"
            },{
                "id": 1,"name": "qwe"
            }
        ]
    }
}

}

我了解如何在状态部分进行搜索,即

listings = db.table('_default')
E = Query()
print(listings.search(E.status.total_count == 4436))

但是如何使用 [] 在数据部分中进行搜索

解决方法

您可以将其作为字符串加载并按索引解析,因为数据是一个列表。因此,只需将 [0] 更改为您有兴趣在数据块中看到的任何索引

import json

x = """{
   "_default":{
      "1":{
         "status":{
            "timestamp":"2021-03-21T15:12:04.025Z","total_count":4436
         },"data":[
            {
               "id":1,"name":"abc"
            },{
               "id":2,"name":"def"
            },{
               "id":1,"name":"qwe"
            }
         ]
      }
   }
}"""

y = json.loads(x)


print(y["_default"]["1"]["data"][0])

结果:

{'id': 1,'name': 'abc'}

编辑:我看到您正在为此使用数据库表,因此您不会完全适用,但您至少可以通过索引想法进行解析