Python将csv中每一行的数据转化为字典

第一种方法:使用pandas模块


import pandas as pd

# 第一种情况
"""
	header=0 是默认值,将默认将csv文件的第一行作为表头文件
"""
df = pd.read_csv("统一开小灶.csv", header=0)


for line in df.values:
	dic = {}
	for item, data in zip(df, line.tolist()):
		dic[item] = data
	print(dic)

    
# 第二种情况
"""
	header=None,设置csv文件没有表头,这是可以自定义一个表头
"""
df = pd.read_csv("统一开小灶.csv", header=None)
headers_list = []
for line in df.values:
	dic = {}
	for item, data in zip(headers_list, line.tolist()):
		dic[item] = data
	print(dic)
# 输出结果

{'商品名称': '统一开小灶', '用户昵称': 't**1', '评论时间': '2020-07-24', '口味': nan, '评论内容': '此用户没有填写评价。', '追评内容': '未追评', '追评时间(几天后追评)': '未追评', '阅读数': 0, '点赞数': 0, '评论图片': '无评论图片'}
{'商品名称': '统一开小灶', '用户昵称': '白**7', '评论时间': '2020-08-12', '口味': nan, '评论内容': '此用户没有填写评价。', '追评内容': '未追评', '追评时间(几天后追评)': '未追评', '阅读数': 0, '点赞数': 0, '评论图片': '无评论图片'}

第二种方法:使用csv模块

from csv import DictReader

# 第一种情况:csv文件中第一行为表头
with open('统一开小灶.csv', mode='r',encoding='utf-8') as read_obj:
	dict_reader = DictReader(read_obj)
	list_of_dict = list(dict_reader)
	print(list_of_dict)

# 第二种情况:csv文件中没有表头
header = ["列1","列2",.....]  # 根据csv文件的列数自定义表头

with open('统一开小灶.csv', mode='r',encoding='utf-8') as read_obj:
    # fieldnames可以将指定的列表作为表头
	dict_reader = DictReader(read_obj,fieldnames=header)
	list_of_dict = list(dict_reader)
	print(list_of_dict)
# 输出结果

[{'商品名称': '统一开小灶', '用户昵称': 't**1', '评论时间': '2020-07-24', '口味': '', '评论内容': '此用户没有填写评价。', '追评内容': '未追评', '追评时间(几天后追评)': '未追评', '阅读数': '0', '点赞数': '0', '评论图片': '无评论图片'}, {'商品名称': '统一开小灶', '用户昵称': '白**7', '评论时间': '2020-08-12', '口味': '', '评论内容': '此用户没有填写评价。', '追评内容': '未追评', '追评时间(几天后追评)': '未追评', '阅读数': '0', '点赞数': '0', '评论图片': '无评论图片'}]

你可能感兴趣的:(python,python,机器学习,开发语言)