起步
最近在用 tornado + peewee + peewee-async 写自己的东西。有了早前工作上的重大教训,这次我一上手就着手打开 peewee 或者是 peewee-async 的 SQL 执行日志,遇到了点问题。最后问题解决了,但过程中产生的几个“为什么”想在这里记录一下。
使用 databases 做异步查询的时候,sqlite、mysql 查询结果返回的都是元组类型,但是连接 pg 数据库的时候返回的是 Record 对象实例。
database = Database(
'postgresql://postgres:password@192.168.111.136:54321/postgres',
min_size=5,
max_size=20
)
await database.connect()
query = "SELECT score, name, id FROM HighScores"
rows = await database.fetch_all(query=query) # 查询
print(rows) # 打印结果
await database.disconnect()
输出:
[<databases.backends.postgres.Record object at 0x000001BADB1E2A08>]
昨天在公司加班要处理这样一组数据:
{"村": "李村", "症状": "血糖", "姓名": "小李1"}
{"村": "李村", "症状": "血糖", "姓名": "小李2"}
{"村": "李村", "症状": "体量", "姓名": "小李3"}
{"村": "李村", "症状": "空腹", "姓名": "小李4"}
...
{"村": "刘村", "症状": "体量", "姓名": "小刘1"}
{"村": "刘村", "症状": "血糖", "姓名": "小刘2"}
{"村": "刘村", "症状": "空腹", "姓名": "小刘3"}
...
{"村": "王村", "症状": "空腹", "姓名": "小王1"}
{"村": "王村", "症状": "血糖", "姓名": "小王2"}
{"村": "王村", "症状": "体量", "姓名": "小王3"}
...
当时的需求是,统计出每个村每种症状的人数。数据是放在一个列表中一起返回的。