所以我讀了很多關于這個主題的問題,但沒有人能夠真正幫助我得到我想要的結果,所以這里是CSV檔案的樣本
。tripId,scooterId,userId,totalDuration,pickUpTime,dropOffTime,userLocationAtBooking. 0,userLocationAtBooking.1,userLocationAtDropOff.0, userLocationAtDropOff.1, totalFare
18721,927,38579。 45,2021-08-22 03: 00:49,2021-08-22 03: 45:39, 24. 76412,46.6493,24.76409833,46.64934,9.58。
18722,434,38563。 45,2021-08-22 03: 01:16,2021-08-2203:45:39,24. 76412,46.64933333,24.76407,46.64933333,13.53
18723,876,38554。 33,2021-08-22 03: 05:57,2021-08-22 03:38:55,24。 71392833,46.660645,24.7097,46.66272,0.67。
18724,476,32291。 65,2021-08-22 03: 14:37,2021-08-22 04: 18:56,24. 77137833,46.64568667,24.7722,46.64523167,32.35
而這里是所需的輸出
{
"38579"/span>: {
"18721": {
"scooterId": "927",
"userId": "38579",
"totalDuration": "45",
"pickUpTime": "2021-08-22 03:00:49",
"dropOffTime": "2021-08-22 03:45:39"。
"userLocationAtBooking.0": "24.76412",
"userLocationAtBooking.1": "46.6493",
"userLocationAtDropOff.0": "24.76409833",
"userLocationAtDropOff.1": "46.64934",
"totalFare": "9.58".
}
},
"38563": {
"18722" : {
"scooterId": "434",
"userId": "38563",
"totalDuration": "45",
"pickUpTime": "2021-08-22 03:01:16",
"dropOffTime": "2021-08-22 03:45:39"。
"userLocationAtBooking.0": "24.76412",
"userLocationAtBooking.1": "46.64933333",
"userLocationAtDropOff.0": "24.76407",
"userLocationAtDropOff.1": "46.64933333",
}
}
}
但我得到的結果是這樣的
{
"38563"/span>: {
"tripId": "18722",
"scooterId": "434",
"userId": "38563",
"totalDuration": "45",
"pickUpTime": "2021-08-22 03:01:16",
"dropOffTime": "2021-08-22 03:45:39"。
"userLocationAtBooking.0": "24.76412",
"userLocationAtBooking.1": "46.64933333",
"userLocationAtDropOff.0": "24.76407",
"userLocationAtDropOff.1": "46.64933333",
"totalFare": "13.53".
}
這是我目前正在使用的代碼
import csv, json
csvFilePath = 'tripsData.csv'/span>
jsonFilePath = 'tripsData.json'/span>
資料 = {}
with open(csvFilePath) as csvFile:
csvReader = csv.DictReader(csvFile)
for rows in csvReader:
id = rows['userId']
data[id] = rows['userId']。
for rows in csvReader:
tripId = rows[tripId]
data[tripId] = rows
with open(jsonFilePath, 'w') as jsonFile:
jsonFile.write(json.dumps(data, indent=4)
非常感謝您的幫助,請記住我真的是個新手
uj5u.com熱心網友回復:你從檔案中讀了兩次,但第一次for-loop已經用盡了csvReader。為了得到想要的輸出,你可以使用下一個例子:
import csv, json
csvFilePath = "tripsData.csv"/span>
jsonFilePath = "tripsData.json"/span>
資料 = {}
with open(csvFilePath, "r"/span>) as csvFile:
csvReader = csv.DictReader(csvFile)
for rows in csvReader:
id_ = rows["userId"]
data[id_] = rows
for user_id, row in data.items()。
data[user_id] = {row["tripId"]: row}.
del row["tripId"]: row].
with open(jsonFilePath, "w") as jsonFile。
jsonFile.write(json.dumps(data, indent=4)
創建json:
{}。
"38579": {
"18721": {
"scooterId": "927",
"userId": "38579",
"totalDuration": "45",
"pickUpTime": "2021-08-22 03:00:49",
"dropOffTime": "2021-08-22 03:45:39",
"userLocationAtBooking.0": "24.76412",
"userLocationAtBooking.1": "46.6493",
"userLocationAtDropOff.0": "24.76409833",/span>
"userLocationAtDropOff.1": "46.64934",
"totalFare": "9.58"/span>
}
},
"38563": {
"18722": {
"scooterId": "434",
"userId": "38563",
"totalDuration": "45",
"pickUpTime": "2021-08-22 03:01:16",
"dropOffTime": "2021-08-22 03:45:39",
"userLocationAtBooking.0": "24.76412",
"userLocationAtBooking.1": "46.64933333",
"userLocationAtDropOff.0": "24.76407",
"userLocationAtDropOff.1": "46.64933333",/span>
"totalFare": "13.53"/span>
}
},
"38554": {
"18723": {
"scooterId": "876",
"userId": "38554",
"totalDuration": "33",
"pickUpTime": "2021-08-22 03:05:57",
"dropOffTime": "2021-08-22 03:38:55",
"userLocationAtBooking.0": "24.71392833",
"userLocationAtBooking.1": "46.660645",
"userLocationAtDropOff.0": "24.7097",
"userLocationAtDropOff.1": "46.66272",
"totalFare": "0.67"/span>
}
},
"32291": {
"18724": {
"scooterId": "476",
"userId": "32291",
"totalDuration": "65",
"pickUpTime": "2021-08-22 03:14:37",
"dropOffTime": "2021-08-22 04:18:56",
"userLocationAtBooking.0": "24.77137833",
"userLocationAtBooking.1": "46.64568667",/span>
"userLocationAtDropOff.0": "24.7722",
"userLocationAtDropOff.1": "46.64523167",/span>
"totalFare": "32.35"/span>
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/327682.html
標籤:
上一篇:合并具有相同列命名的幾個csv
