python - python在处理来自数据库的响应时添加额外的引号(将json转换为字符串)
问题描述
我有对 postgresql 数据库的 sql 查询包括这一行
..(json_agg(json_build_object('id', activities.id, 'name', activities.name))::json->0) AS activity ..
这将结果返回为
'activity': '{"id" : 1, "name" : "basketball"}'
那么活动密钥ID字符串的值,如何获得这种格式
'activity': {"id" : 1, "name" : "basketball"}
?
psql (PostgreSQL) 13.3 (Ubuntu 13.3-1.pgdg18.04+1)
ps 完整查询
SELECT events.id, events.title, events.creator, events.content, events.status, \
(jsonb_agg(json_build_object('city', locations.city, 'street', locations.street, \
'building', locations.building, 'lat', locations.lat, 'long', locations.long))::json -> 0)AS location ,\
(jsonb_agg(jsonb_build_object('id', activities.id, 'name', activities.name))::json -> 0) AS activity \
FROM events JOIN locations ON events.location_id=locations.id \
JOIN activities ON events.activities_id=activities.id \
WHERE events.id = 2 GROUP BY events.id
这还给我
result = <databases.backends.postgres.Record object at 0x7fcf16399290>
在我将它转换为 python dict 对象之后
dict(result)
并得到
{'id': 2, 'title': 'Test', 'creator': 1, 'content': 'Test Content', 'status': 'OPEN', 'location': '{"lat": 53.8498155, "city": "Minsk", "long": 27.4760262, "street": "Lenina ", "building": "1"}', 'activity': '{"id": 1, "name": "basketball"}'}
解决方案
推荐阅读
- javascript - React 实现 Pannable 和 Zoomable 元素,其中包含 Draggable 组件
- javascript - Javascript - 给定宽度、高度和空间限制,并允许旋转,计算有多少矩形适合一个大矩形
- javascript - WebAssembly 代码未在现有 angularjs 应用程序中运行
- c++ - 类的问题被认为是抽象类但没有虚拟纯方法
- reactjs - 如何通过 ReactJS 中的链接正确传递道具,以便它也可以在新选项卡中打开?
- python - `logging.basicConfig(level=logging.INFO)` 是否应该只接受 INFO 级别的日志记录?
- javascript - CORS 策略已阻止从源“null”访问“https://localhost:44395”获取
- python-3.x - Azure 应用服务中的 Python 应用:引发 JavaError("can't find Java")
- javascript - 我们可以更改返回的 oembed YouTube iframe 宽度和高度吗?
- c# - C# - 错误“System.ArgumentOutOfRangeException:长度不能小于零。” 但是作为参数放入WriteLine时没有错误?