簡體   English   中英

將 CSV 字符串轉換為字典

[英]Converting a CSV string into a dictionary

對於一個項目,我試圖在對文件進行特定修改后將我的 csv 文件轉換為字典。 所以,

df = pd.read_csv('')
for col in df:
    if col[:10] == 'Warehouse.':
        stripped = col[10:]
        if stripped[:8] != 'timedata':
            print('\n',col)

我正在嘗試將生成的文件轉換為字典,但卡住了。 我努力了:

  1. 通過使用 line.strip("\n") 刪除尾隨換行符來迭代文件 (df),然后使用 line.split(",") 拆分結果字符串以獲得鍵和值

  2. 在我對文件進行更改之前使用 DictReader class,盡管我一直收到錯誤消息說我不能這樣做

將此修改后的 csv 轉換為字典的最佳方法是什么?

謝謝!

也稱為 map 的字典是鍵值對數據結構,那么您希望字典中的鍵和值到底是什么?

我將假設鍵是行號,值是該行中的內容,但是該行本身在單元格中包含很多值,因此 map 中的值最好是包含該行中的單元格的數組.

為此,讓我們回顧一下在 CSV(逗號分隔值)中,行由作為換行符的 '\n' 分隔,並且在每一行中,值由 ',' 逗號分隔,因此得名。

file_path = "<file_path.csv>"
file = open(file_path,'r') #open the file in read mode


data = file.read() #read the file data
file.close() #close the file

data = data.split('\n') #split the data by new line character to get each line as a list element
data.pop() #remove the last empty row

dict_data = {}
for i in range(len(data)):
    data[i] = data[i].split(',') #split each line by comma to get each cell as a list element
    dict_data[i+1] = data[i]

# now data is a list of lists or a 2D array where each element is a list of cells

現在您可以使用 dict_data 為其指定行號,結果將是一個數組,其中每個元素都包含 CSV 中的單元格數據

或者您可以只使用數據二維數組而不是 dict_data,但請確保使用行號 + 1,因為 arrays 或列表是從零開始的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM