保留键顺序:使用Python脚本将JSON数据加载到Snowflake VARIANT列中
我试图从API中提取JSON响应数据,并使用Python脚本将其加载到Snowflake VARIANT列中 在加载数据时,我注意到按键是按字母顺序重新排列的 Python/Postman数据:保留键顺序:使用Python脚本将JSON数据加载到Snowflake VARIANT列中,python,snowflake-cloud-data-platform,Python,Snowflake Cloud Data Platform,我试图从API中提取JSON响应数据,并使用Python脚本将其加载到Snowflake VARIANT列中 在加载数据时,我注意到按键是按字母顺序重新排列的 Python/Postman数据: { "Data": [ { "CompanyID": 3522, "MarketID": 23259, "MarketName": "XYZ_Market"
{
"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()查询函数将数据加载到snowflake中。有没有办法保持键的顺序?在Python 3.6+词典中,保持键的插入顺序。但是,正如JSON中所指出的,对象是无序的。因此,您可能会受到数据存储方式的限制
如果需要维护顺序,请考虑数组数组。
[
[“公司ID”,3522],
[“市场化”,23259],
[“市场名称”、“XYZ_市场”],
[“LocationID”,17745],
[“位置名称”,“XYZ_位置”]
]
您使用的Python版本是什么?还请提供您的Python代码和snowflake schemaJSON是名称和值对的非有序集合。您无法保证JSON中的顺序键的顺序是必需的原因是什么?只是好奇,我以前见过这个问题,但从来没有理解过。如果您计划在Snowflake中查询数据,则键的顺序无关紧要,parse_json函数带来密钥是为了提高性能。这是我们的一位客户提出的问题,他想知道为什么snowflake中variant列中的json数据不能像Postman那样保留密钥顺序。因此,PARSE_JSON()snowflake函数似乎正在改变顺序以获得更好的性能。我知道我们总是有一个选项,可以将数据展平,并以我们希望使用策划视图看到的任何顺序表示数据/属性,但我想知道我们从专家那里得到的其他选项。实际上,我需要使用视图展平存储在变体列中的JSON数据,而数组对我帮助不大。