我有一個從 API 獲得的 JSON 輸出,我試圖從“行”中提取嵌套值并訪問行內的“單元格”鍵。
這是 JSON 輸出
"rows": [
{
"id": 6770063759566724,
"rowNumber": 1,
"expanded": true,
"createdAt": "2022-01-27T17:04:11Z",
"modifiedAt": "2022-01-27T17:04:11Z",
"cells": [
{
"columnId": 2775064444725124,
"value": "Smith",
"displayValue": "Smith"
},
{
"columnId": 7278664072095620,
"value": "John",
"displayValue": "John"
},
{
"columnId": 1649164537882500,
"value": 12.0,
"displayValue": "12"
},
{
"columnId": 6152764165252996,
"value": "Gilbert",
"displayValue": "Gilbert"
},
{
"columnId": 3900964351567748,
"value": "Webhook Test",
"displayValue": "Webhook Test"
}
]
},
這是我的代碼
我需要單元格內的每個 columnID 和單元格內的值。然后這些值將被記錄到我的 Django 專案中。感謝幫助。
這是 print(cells) 的輸出
{6770063759566724: [{'columnId': 2775064444725124, 'value': 'Smith', 'displayValue': 'Smith'}, {'columnId': 7278664072095620, 'value': 'John', 'displayValue': 'John'}, {'columnId': 1649164537882500, 'value': 12.0, 'displayValue': '12'}, {'columnId': 6152764165252996, 'value': 'Gilbert', 'displayValue': 'Gilbert'}, {'columnId': 3900964351567748, 'value': 'Webhook Test', 'displayValue': 'Webhook Test'}]}
for r in response_info ['rows']:
try:
row_id = r['id']
rowNumber = r['rowNumber']
if SmartSheetData.objects.filter(sheet_id = sheet, row_id = row_id):
print("Updating Sheet rows")
print('<--Row ID-->%s' %row_id)
print('<--Row Number-->%s' %rowNumber)
SmartSheetData.objects.filter(sheet_id = sheet, row_id = row_id).update(row_number = rowNumber)
# GETS CELL VALUES
print('Getting Cell Values')
cells = {}
cells[r['id']] = r['cells']
print(cells)
columnId = cells.get('columnId')
value = cells.get('value')
print('<--Column ID-->%s' %column_id)
print('<--Value-->%s' %value)
if SmartSheetData.objects.filter(sheet_id = sheet, row_id = row_id):
print("Updating row cell values")
print('<--Row ID-->%s' %row_id)
print('<--Row Number-->%s' %rowNumber)
print('<--Column ID-->%s' %column_id)
print('<--Cell Value-->%s' %value)
SmartSheetData.objects.filter(sheet_id = sheet, row_id = row_id).update(row_cell = value)
except Exception as err5:
print ("Missing row values, skipping", str(err5))
uj5u.com熱心網友回復:
希望這是正確的,您可以從這里獲取
for nrow, row in enumerate( response_info ['rows']) :
# use dict.get method to supply a default for missing keys instead of crashing.
# Here, an empty list can be iterated over (zero times) in the inner loop.
cells = row.get('cells', [])
for ncol, cell in enumerate( cells):
col_id = cell.get( "columnId", None)
value = cell.get( "value", None)
# what you do with these things is up to you
print( f"Row {nrow} cell {ncol} id : value = {col_id} : {value}")
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/422728.html
標籤:
