gpt4 book ai didi

python - 查询存储在 MySQL 中的多级 JSON 对象

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:24 25 4
gpt4 key购买 nike

我在包含多级 JSON 对象的 MySQL 表中有一个 JSON 列。我可以使用函数 JSON_EXTRACT 访问第一级的值,但我找不到如何越过第一级。

这是我的 MySQL 表:

CREATE TABLE ref_data_table (
`id` INTEGER(11) AUTO_INCREMENT NOT NULL,
`symbol` VARCHAR(12) NOT NULL,
`metadata` JSON NOT NULL,
PRIMARY KEY (`id`)
);

这是我的 Python 脚本:

import json 
import mysql.connector

con = mysql.connector.connect(**config)
cur = con.cursor()

symbol = 'VXX'
metadata = {
'tick_size': 0.01,
'data_sources': {
'provider1': 'p1',
'provider2': 'p2',
'provider3': 'p3'
},
'currency': 'USD'
}
sql = \
"""
INSERT INTO ref_data_table (symbol, metadata)
VALUES ('%s', %s);
"""
cur.execute(sql, (symbol, json.dumps(metadata)))
con.commit()

数据已正确插入到 MySQL 表中,MySQL 中的以下语句有效:

SELECT symbol, JSON_EXTRACT(metadata, '$.data_sources') 
FROM ref_data_table
WHERE symbol = 'VXX';

如何在“data_sources”中请求“provider3”的值?

非常感谢!

最佳答案

试试这个:

'$.data_sources.provider3'

SELECT symbol, JSON_EXTRACT(metadata, '$.data_sources.provider3)
FROM ref_data_table
WHERE symbol = 'VXX';

关于python - 查询存储在 MySQL 中的多级 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37756438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com