python - PostgreSQL 从 JSON 列返回一个 JSON,其中只有键在 python 列表中的键/值
问题描述
假设我有一些我想在 Python 脚本中选择的 PostgreSQL 表('table_1')。该表有一列包含 JSON 数据(称为“json_data”),如下所示,例如:
{'4369': 2, '8465': 1, '12561': 1, '12562': 1}
现在我在 Python 中有一个列表,如下所示:
[4369, 8465, 12561, 16657]
我的目标是从 postgresql 表中返回一个 JSON/dict,该表仅包含键/值对,其中键位于每行的 Python 列表中。对于上述情况,我希望 JSON 返回为:
{'4369': 2, '8465': 1, '12561': 1}
我的猜测是它必须看起来有点像这样,但我不知道'......'必须去什么
SELECT json_data ->> ... IN 'python_list'
FROM table_1
解决方案
示例,仅使用普通 SQL 并使用 CTE 来模拟您的表:
WITH i AS (
SELECT '{"4369": 2, "8465": 1, "12561": 1, "12562": 1}'::json AS json_data
)
SELECT *
FROM i, -- your table name
json_each(json_data)
WHERE key::int =any(ARRAY[4369, 8465, 12561, 16657]);
函数 json_each (或使用 jsonb 数据类型时的 jsonb_each )可以解决问题。
我希望你能把它变成python中有用的东西。
推荐阅读
- python - Dedupe python - '记录不符合数据模型'
- eclipse - 在通过缩放会议进行远程控制时,是否需要进行任何设置来控制 Eclipse IDE?
- android - React NativeModule 中 Android MediaPlayer 的上下文
- android - 密钥对 RSA 安卓
- python - Replace a word or set of letters from a string in a dataframe only if the string starts with that word
- azure - Kusto 如何使用带时间跨度的比较运算符
- python - 如何从这个熊猫数据框中制作四倍条形图?
- ssl - 为什么 Tomcat 9 为单独配置的两个不同域提供相同的 SSL 证书?
- sql - 当 SQL Server 总计出现在第一行而不是表末尾时出错
- python - Python + Pyglet:高效更新精灵使用的图像