剛自學,請問我已把資料分出來為list,
['數學=80','英文=90','自然=70]
但是要如何才能再分開轉為dict?
這樣我才能由print(dic["數學"])印出為80
data=row["查詢"].split("\n")
print(data)
謝謝教導
108804再發問
謝謝回答,
但執行到一半,發現原來來源資料格式還不一致,會出現錯誤,
資料來源為檔案,
我是一行一行讀入處理
如:分出後,資料格式list為
第1筆:['數學=80','英文=90','自然=70']
第2筆:['數學=40','英文-70','自然-40','國語=60']
第3筆:['學數60','英文=50','國語=80']
import csv
with open("1.csv",mode="r",encoding="utf-8") as file:
rows=csv.DictReader(file)
for row in rows:
data=row["分數"].split("\n")
if str(data).find("英文") > 0:
data=str(data).replace("英文-","英文=")
result=dict([d.split("=") for d in data])
print (result)
我是想把資料格式都換成一樣的,再轉dict,但是這樣會有錯誤發生,
ValueError: dictionary update sequence element #1 has length 1; 2 is required
請問我該怎麼修正,謝謝教導。
我是想把資料格式都換成一樣的,再轉dict,但是這樣會有錯誤發生,
ValueError: dictionary update sequence element #1 has length 1; 2 is required
你會有這個問題是因為你其中這個項目「自然-40」切失敗,
第2筆:['數學=40','英文-70','自然-40','國語=60']
導致Input進 dict() 只剩下一個元素,無法成立 "dict",
故系統反饋Err訊息給你,
解決辦法就是無差別的將 "-" 直接轉成 "="
# ['數學=80','英文=90','自然=70']
# ['數學=40','英文-70','自然-40','國語=60']
# ['學數60','英文=50','國語=80']
with open("1.csv","r",encoding="utf-8") as file:
while True:
rows=file.readline().replace("-","=")
if rows=="":break
result=dict([d.split("=") for d in data])
print(result)