{
"First Name": "Jonathan",
"Last Name": "Thomas",
"Marital Status": "married or civil partner",
"Sex": "Male",
"Age (Years)": 46,
"Retired": true,
"Distance Commuted to Work (miles)": 13.72,
"Employer Company": "Begum-Williams",
"Dependants": 1,
"Yearly Salary (\u00c2\u00a3)": 54016,
"Yearly Pension (\u00c2\u00a3)": 0,
"Address Street": {
"Address Street": "00 Wheeler wells",
"Address City": "Chapmanton",
"Address Postcode": "L2 7BT"
},
"Credit Card Number": {
"Credit Card Number": "4529436854129855",
"Credit Card Start Date": "08/12",
"Credit Card Expiry Date": "11/26",
"Credit Card CVV": 583,
"Bank IBAN": "GB37UMCO54540228728019"
},
"Vehicle Make": {
"Vehicle Make": "Nissan",
"Vehicle Model": "ATS",
"Vehicle Year": 1996,
"Vehicle Type": "Coupe"
}
我有客戶資料,標題順序隨機寫入。專案的 JSON 要求高于訂單。所以我在下面寫了一個代碼來放置正確的順序并轉換為型別。
l = []
with open("userdata.csv", 'r') as data_file:
reader = csv.reader(data_file)
headers = next(reader)
for reader_row in reader:
d = {}
d[headers[11]] = str(reader_row[11])
d[headers[13]] = str(reader_row[13])
d[headers[14]] = str(reader_row[14])
d[headers[18]] = str(reader_row[18])
d[headers[3]] = int(reader_row[3])
d[headers[16]] = bool(reader_row[16]
d[headers[4]] = float(reader_row[4])
d[headers[5]] = str(reader_row[5])
d[headers[10]] = int(reader_row[10]) if reader_row[10] else None
d[headers[17]] = int(reader_row[17])
d[headers[15]] = int(reader_row[15])
d[headers[0]]={'Address Street': str(reader_row[0]),
'Address City': str(reader_row[1]),
'Address Postcode': str(reader_row[2])
}
d[headers[8]]={'Credit Card Number': str(reader_row[8]),
'Credit Card Start Date': str(reader_row[6]),
'Credit Card Expiry Date': str(reader_row[7]),
'Credit Card CVV': int(reader_row[9]),
'Bank IBAN' : str(reader_row[12])
}
d[headers[19]]={'Vehicle Make': str(reader_row[19]),
'Vehicle Model': str(reader_row[20]),
'Vehicle Year': int(reader_row[21]),
'Vehicle Type': str(reader_row[22])
}
l.append(d)
print(d)
但是在那次轉換之后,我在退休的 bool 型別上遇到了錯誤。由于 csv 檔案是以字串格式撰寫的。所有轉換后的 bool 都帶有 True,因為 bool("true") 或 bool("false") 是 True,您能幫我使用默認系統庫(os、sys、time)將所有退休值轉換為正確的 bool 型別嗎? 、json、csv、...)?
uj5u.com熱心網友回復:
要將您的字串值轉換為 bool,您應該能夠按如下方式進行比較:
d[headers[16]] = reader_row[16].lower().strip() == 'true'
在lower()和strip()可能并不需要,但他們保證字串是小寫的,沒有任何多余的空格,以幫助比較。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/353861.html
