【发布时间】:2020-10-30 01:27:06
【问题描述】:
我试图从 API 中提取 JSON 响应数据并使用 Python 脚本将其加载到 Snowflake VARIANT 列中。
在加载数据时,我注意到键按字母顺序重新排列。
Python/Postman 数据:
{
"Data": [
{
"CompanyID": 3522,
"MarketID": 23259,
"MarketName": "XYZ_Market"
"LocationID": 17745,
"LocationName": "XYZ_Location"
}
}
雪花数据:
{
"Data": [
{
"CompanyID": 3522,
"LocationID": 17745,
"LocationName": "XYZ_Location",
"MarketID": 23259,
"MarketName": "XYZ_Market"
}
}
我正在使用 PARSE_JSON() 查询函数将数据加载到雪花中。有什么办法可以保持键的顺序吗?
【问题讨论】:
-
您使用的是什么版本的 Python?还请提供您的 Python 代码和雪花模式
-
JSON 是名称和值对的无序集合。您不能保证 JSON 中的顺序
-
键的顺序是必要的原因是什么?只是好奇,因为我以前见过这个问题,但从来没有理解过。如果您打算在 Snowflake 中查询数据,则键的顺序无关紧要。
-
它不是 python ,它是 parse_json 函数带来的关键,以提高性能。
-
这是我们的一位客户提出的问题,他想知道为什么雪花中变体列中的 JSON 数据不能像 Postman 那样保留密钥顺序。所以看起来 PARSE_JSON() 雪花函数正在改变顺序以获得更好的性能。我知道我们始终可以选择展平数据并以我们希望使用精选视图查看的任何顺序表示数据/属性,但我想知道我们从专家那里获得的其他选择。
标签: python snowflake-cloud-data-platform