Python操作Firebase Realtime Database时发送整数而非JSON文件的问题排查
问题原因
os.open() 返回的是文件描述符(整数),而非你需要的JSON内容。Firebase Realtime Database的post()方法接收到这个整数后,就直接把它作为数据存入了,这就是你看到数字“4”的原因。
解决方法
你需要先读取JSON文件的内容,解析为Python字典,再传给Firebase的post()方法。
修正后的代码示例:
import json # 假设firebase是已配置好的实例 # 方法1:直接读取并解析JSON文件 with open('data/character.json', 'r') as f: data = json.load(f) data_send = firebase.post('/', data) # 方法2:先读取文本再解析(适用于需要预处理内容的场景) with open('data/character.json', 'r') as f: json_str = f.read() data = json.loads(json_str) data_send = firebase.post('/', data)
额外注意点
你的character.json文件最后一个键值对后面多了个逗号:
{ "username": "admin", "gender": "male", // 这里的逗号建议去掉 }
虽然部分JSON解析器能兼容这种写法,但严格来说不符合JSON规范,可能导致解析失败,建议删除这个多余的逗号。
内容的提问来源于stack exchange,提问作者RinUnderscore
相关产品推荐
相关产品推荐

