【发布时间】:2018-09-19 04:15:13
【问题描述】:
如果我只从我的 mysql 查询中返回一行并且我知道标题我可以通过 python 中的 dict 分配这些值吗?我确实有一些嵌套的数据。数据最终将作为 JSON 对象返回。
问题:将这些 mysql 值分配到我的 python 数组 things 并将该对象作为 json 字符串返回的正确语法是什么?
例如,我的 JSON 需要看起来像您会注意到查询中的相关数据嵌套在学校和地址中:
{
“data”:[
{
“player”:
{
“id”:xxx-xxx-xxx,
“name”: “name1”,
“school”:
{
“id”:xxxx,
“address”:
{
“id”:xxx,
“city”: “mycity”,
“state”: “OH”
},
“name”: “myschool”,
“mascot”: “wildcats”
},
“height”: 72,
“weight”: 180
},
]
}
我希望能够分配类似于以下内容的值:
cur.execute("select pla.id, pla.name, sch.id, address.id, address.city, address.state, sch.name, sch.mascot, pla.height, pla.weight FROM Players pla LEFT JOIN SchoolData sch ON pla.School = sch.ID LEFT JOIN LocationData address ON sch.Location = address.ID where pla.ID = %d" %int(student_id))
things = []
for row in cur.fetchall():
things.append(dict([
{"data":[
{
"player":
{
"id":row[0],
"name": row[1],
"school":
{
"id":row[2],
"address":
{
"id":row[3],
"city": row[4],
"state": row[5]
},
"name": row[6],
"mascot": row[7]
},
"height": row[8],
"weight": row[9]
},
]
}
]))
return (jsonify({'players:' : things})
【问题讨论】:
-
好的,那么您的问题/疑问是什么?
-
抱歉@AlanHoover 不清楚我已根据特定要求更新了我的问题。
-
如果您尝试运行您发布的内容会发生什么?
-
我在结束“]”附近收到一个`无效语法`
-
将您所有的开盘和收盘
[]、{}和()匹配到该点