使用javascript中排序后的值中的新键格式化JSON

使用javascript中排序后的值中的新键格式化JSON,javascript,python,node.js,json,object,Javascript,Python,Node.js,Json,Object,我正试图在Nodejs中重写一些现有的python代码。然而,我在数据类型方面遇到了一些问题,因为我习惯于用python创建字典,而这在Nodejs中是不可用的。基本上,我使用psycopg2(从cur.fetchall()获取行)从数据库获取数据,它返回的结果如下 ##Column names: Snapshot_day, Bucket, Sub_Bucket, Bucket_Flag, Issue_Reason, Reason_Description, first_violation_da

我正试图在Nodejs中重写一些现有的python代码。然而,我在数据类型方面遇到了一些问题,因为我习惯于用python创建字典,而这在Nodejs中是不可用的。基本上,我使用psycopg2(从cur.fetchall()获取行)从数据库获取数据,它返回的结果如下

##Column names: Snapshot_day, Bucket, Sub_Bucket, Bucket_Flag, Issue_Reason,  Reason_Description, first_violation_date, dw_create_date, dw_update_date, area,  region
rows = (("2021-04-05", "Virginia", "Vir123", "Yes", "Connection Issue", "Connection Issue", "2020-01-17", "2020-01-17", "2020-01-17", "EC", "AMER"),
         ("2020-01-05", "New York", "POR532", "No", "Server", "Failure", "2020-01-17", "2020-01-17", "2020-01-17", "EC", "AMER"),
         ("2020-01-05", "Virginia", "Vir543", "Yes", "Server", "Failure", "2020-01-17", "2020-01-17", "2020-02-17", "EC", "AMER")
        )
我在这些行(元组)中使用for循环和if条件来分配Snapshot_day、bucket、sub_bucket和Issue reason作为键,并最终按升序排序

快进一步,我的最终输出如下所示。运行python代码

我试图在Nodejs中获得类似的输出。我能够使用pg库从数据库中提取数据。我的输出如下所示,但我还没有弄清楚如何将JSON输出作为python文件

##Output from my Javascript
##Column names: Snapshot_day, Bucket, Sub_Bucket, Bucket_Flag, Issue_Reason,  Reason_Description, first_violation_date, dw_create_date, dw_update_date, area,  region
[
  [
    '2021-04-05',
    'Virginia',
    'Vir123',
    'Yes',
    'Connection Issue',
    'Connection Issue',
    '2020-01-17',
    '2020-01-17',
    '2020-01-17',
    'EC',
    'AMER'
  ],
  [
    '2020-01-05',
    'New York',
    'POR532',
    'No',
    'Server',
    'Failure',
    '2020-01-17',
    '2020-01-17',
    '2020-01-17',
    'EC',
    'AMER'
  ],
  [
    '2020-01-05',
    'Virginia',
    'Vir543',
    'Yes',
    'Server',
    'Failure',
    '2020-01-17',
    '2020-01-17',
    '2020-02-17',
    'EC',
    'AMER'
  ]
]
//dbOutput表示您的数据库输出
常量dbOutput=[
[
'2021-04-05',
“弗吉尼亚”,
“病毒123”,
“是的”,
“连接问题”,
“连接问题”,
'2020-01-17',
'2020-01-17',
'2020-01-17',
“EC”,
“阿默尔”
],
[
'2020-01-05',
“纽约”,
“POR532”,
“不”,
“服务器”,
“失败”,
'2020-01-17',
'2020-01-17',
'2020-01-17',
“EC”,
“阿默尔”
],
[
'2020-01-05',
“弗吉尼亚”,
“Vir543”,
“是的”,
“服务器”,
“失败”,
'2020-01-17',
'2020-01-17',
'2020-02-17',
“EC”,
“阿默尔”
]
]
//将数组缩减为对象
const obj=dbOutput.reduce((映射,数据)=>{
const[日期、省、代码、标志、发布原因、原因描述、createDate、updateDate、violationDate、area、region]=数据
如果(!映射[日期]){
映射[日期]={}
}
如果(!地图[日期][省]){
地图[日期][省]={}
}
如果(!地图[日期][省][代码]){
地图[日期][省][代码]={}
}
如果(!地图[日期][省份][代码][旗帜]){
地图[日期][省][代码][旗帜]={}
}
地图[日期][省份][代码][旗帜]={
“问题原因”:问题原因,
“原因描述”:原因描述,
地区
区域
“dc_创建日期”:createDate,
“dc\u更新日期”:更新日期,
}
返回图
},{})
//获取对象的排序日期键,然后将排序键数组缩减为最终输出
const output=Object.keys(obj).排序((a,b)=>新日期(a)-新日期(b)).reduce((map,Date)=>{
映射[日期]={…对象[日期]}
返回图
},{})
console.log(JSON.stringify(输出))
##Output from my Javascript
##Column names: Snapshot_day, Bucket, Sub_Bucket, Bucket_Flag, Issue_Reason,  Reason_Description, first_violation_date, dw_create_date, dw_update_date, area,  region
[
  [
    '2021-04-05',
    'Virginia',
    'Vir123',
    'Yes',
    'Connection Issue',
    'Connection Issue',
    '2020-01-17',
    '2020-01-17',
    '2020-01-17',
    'EC',
    'AMER'
  ],
  [
    '2020-01-05',
    'New York',
    'POR532',
    'No',
    'Server',
    'Failure',
    '2020-01-17',
    '2020-01-17',
    '2020-01-17',
    'EC',
    'AMER'
  ],
  [
    '2020-01-05',
    'Virginia',
    'Vir543',
    'Yes',
    'Server',
    'Failure',
    '2020-01-17',
    '2020-01-17',
    '2020-02-17',
    'EC',
    'AMER'
  ]
]