如何在Python中获取Replit数据库嵌套key 'shares'的原始数据
解决方法
Replit数据库的get_raw()方法返回的是对应键存储的原始字符串数据,而非解析后的Python对象;直接通过db[key]访问则会自动将JSON字符串解析为Python字典/列表。结合你的需求,正确获取shares原始数据的方式有两种:
方式一:获取shares对应的原始JSON字符串
如果你需要的是shares的原始JSON格式字符串,可以按以下步骤操作:
import json # 获取users的原始JSON字符串 users_raw = db.get_raw("users") # 将字符串解析为Python字典 users_dict = json.loads(users_raw) # 提取shares部分并转回原始JSON字符串 shares_raw = json.dumps(users_dict["dylan@dylan.com"]["shares"])
方式二:直接获取shares的数据内容(无需原始字符串)
如果只是需要shares的数据内容,而非原始JSON格式,直接访问解析后的字典即可:
shares_data = db["users"]["dylan@dylan.com"]["shares"]
你的写法失败原因
- 第一种写法
db["users"]["dylan@dylan.com"].get_raw("shares"):db["users"]返回的是解析后的Python字典,字典没有get_raw()方法,因此报错。 - 第二种写法
db.get_raw("users")["dylan@dylan.com"]["shares"]:db.get_raw("users")返回的是JSON字符串,无法直接用字典索引,必须先通过json.loads()解析为Python对象才能访问嵌套键。
内容的提问来源于stack exchange,提问作者Dylan Gow
相关产品推荐
相关产品推荐

