以下是一个使用Python和BigQuery的示例代码,从JSON对象中提取键,并将对象的JSON转换为键值数组:
from google.cloud import bigquery
import json
# 初始化BigQuery客户端
client = bigquery.Client()
# 定义要查询的JSON数据
json_data = '''
{
"name": "John",
"age": 30,
"city": "New York"
}
'''
# 通过BigQuery的JSON_EXTRACT_SCALAR函数提取键
query = """
SELECT
JSON_EXTRACT_SCALAR(json_data, '$.name') AS key,
JSON_EXTRACT_SCALAR(json_data, '$.value') AS value
FROM (
SELECT JSON_EXTRACT('{}', '$') AS json_data
)
"""
# 运行查询
query_job = client.query(query)
# 获取查询结果
results = query_job.result()
# 将结果转换为键值数组
key_value_array = []
for row in results:
key = row.key
value = row.value
key_value_array.append({key: value})
# 打印键值数组
for item in key_value_array:
print(item)
在上面的代码中,我们使用了BigQuery的JSON_EXTRACT_SCALAR函数来提取JSON对象中的键,并将提取的键和对应的值存储在一个键值数组中。然后,我们遍历键值数组,并打印每一个键值对。
请注意,上述代码中的json_data
变量是一个字符串。实际应用中,您可以将其替换为自己的JSON数据。此外,您需要在代码中设置好使用BigQuery的凭据和项目信息。