我正在尝试使用csv.DictReader()读取一个csv文件,并将数据以字典的形式存储到一个列表中。但问题是dict没有正确生成。
with open(report_object_items_filepath, 'r',encoding='utf-8') as csvf:
#load csv file data using csv library's dictionary reader
csvReader = csv.DictReader(csvf)
#convert each csv row into python dict
for row in csvReader:
#adding (row):python dict to json array
jsonArray.append(row)
我得到的输出-
{'FILE_ID;DASHBOARD_TITLE;OBJECT_TITLE;OBJECT_TYPE;LISTEN_TO_FILTER;ITEM_NAME;COLUMN_ORDER;OBJECT_ROW;OBJECT_COLUMN;OBJECT_WIDTH;OBJECT_HEIGHT;DATA_ITEM_FEATURES;SORT_ITEM_YN;REFERENCE_TREND_LINE;ITEM_CONDITION;AGGREGATION;DIMENSION_GROUP': 'TDSfile3;Dashboard 1;Sheet 1;;Gender;AdventureWorks_Customers.AnnualIncome;1;50000;30778;52422;24500;measure;;;;Sum;'}
在输出中,它应该包含字典键单独和相同的值。但相反,它的形式单一字符串。
正确的结果应该是键是各自的值。作为-
{'FILE_ID': 'TDSfile3', 'DASHBOARD_TITLE': 'Dashboard 1', 'OBJECT_TITLE': 'Sheet 1', 'OBJECT_TYPE': '', 'LISTEN_TO_FILTER': 'Gender', 'ITEM_NAME': 'AdventureWorks_Customers.AnnualIncome', 'COLUMN_ORDER': '1.0', 'OBJECT_ROW': '50000', 'OBJECT_COLUMN': '30778', 'OBJECT_WIDTH': '52422', 'OBJECT_HEIGHT': '24500', 'DATA_ITEM_FEATURES': 'measure', 'SORT_ITEM_YN': '', 'REFERENCE_TREND_LINE': '', 'ITEM_CONDITION': '', 'AGGREGATION': 'Sum', 'DIMENSION_GROUP': ''}
1条答案
按热度按时间zzlelutf1#
这似乎是你的文件在不是真正的“逗号分隔”,但分号分隔。使用
csv.DictReader(csvf, delimiter=';')
。产出: