Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
保留键顺序:使用Python脚本将JSON数据加载到Snowflake VARIANT列中_Python_Snowflake Cloud Data Platform - Fatal编程技术网

保留键顺序:使用Python脚本将JSON数据加载到Snowflake VARIANT列中

保留键顺序:使用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"

我试图从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()查询函数将数据加载到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数据,而数组对我帮助不大。