Относительно новичок в Python, произошедший из фона node.js, с довольно большим количеством проблем при разборе вывода, который я получаю from get_query_results()
Ссылка на документацию
Я занимался этим несколько часов, я пытался перебирать ['ResultSetMetadata']['ColumnInfo']
, чтобы получить имена столбцов, но я не знаю, как связать ['ResultSet']['Data']
с этими элементами, чтобы код знал, какое имя применять к каждомуdataValue
.
Я знаю, что мне нужно выбрать заголовки строк, а затем добавить связанные объекты в эти строки, но логика того, как сделать это в python, ускользает от меня.
Iвидно, что имя первого столбца всегда совпадает с первым ['Data']['VarCharValue']
, поэтому я могу получить все значения по порядку, но если я переберу ['ResultSet']['Rows']
, как мне выделить первую итерацию в качестве имен столбцов, чтобы затем заполнять их каждымдругой ряд?
Или есть лучший способ сделать это?
Вот мой json.dumps (ATHENAoutput)
{
"ResultSet": {
"Rows": [{
"Data": [{
"VarCharValue": "postcode"
}, {
"VarCharValue": "CountOf"
}]
}, {
"Data": [{
"VarCharValue": "1231"
}, {
"VarCharValue": "2"
}]
}, {
"Data": [{
"VarCharValue": "1166"
}, {
"VarCharValue": "2"
}]
}, {
"Data": [{
"VarCharValue": "3651"
}, {
"VarCharValue": "3"
}]
}, {
"Data": [{
"VarCharValue": "2171"
}, {
"VarCharValue": "2"
}]
}, {
"Data": [{
"VarCharValue": "4697"
}, {
"VarCharValue": "2"
}]
}, {
"Data": [{
"VarCharValue": "4450"
}, {
"VarCharValue": "2"
}]
}, {
"Data": [{
"VarCharValue": "4469"
}, {
"VarCharValue": "1"
}]
}],
"ResultSetMetadata": {
"ColumnInfo": [{
"Scale": 0,
"Name": "postcode",
"Nullable": "UNKNOWN",
"TableName": "",
"Precision": 2147483647,
"Label": "postcode",
"CaseSensitive": true,
"SchemaName": "",
"Type": "varchar",
"CatalogName": "hive"
}, {
"Scale": 0,
"Name": "CountOf",
"Nullable": "UNKNOWN",
"TableName": "",
"Precision": 19,
"Label": "CountOf",
"CaseSensitive": false,
"SchemaName": "",
"Type": "bigint",
"CatalogName": "hive"
}]
}
},
"ResponseMetadata": {
"RetryAttempts": 0,
"HTTPStatusCode": 200,
"RequestId": "18190e7c-901c-40b4-b6ef-10a5013b1a70",
"HTTPHeaders": {
"date": "Mon, 01 Oct 2018 04:51:14 GMT",
"x-amzn-requestid": "18190e7c-901c-40b4-b6ef-10a5013b1a70",
"content-length": "1464",
"content-type": "application/x-amz-json-1.1",
"connection": "keep-alive"
}
}
}
Мой желаемый результат - массив JSON, подобный следующему:
[{
"postcode": "2171",
"CountOf": "2"
}, {
"postcode": "4697",
"CountOf": "2"
}, {
"postcode": "1166",
"CountOf": "2"
},
...
]