python - 使用 csv 文件中的行号创建字典 [Python]
问题描述
我有一个 CSV 文件,其中包含 60 名参与者的调查数据。第一列是参与者的编号,每个数字对应于从该参与者收集的所有数据。它看起来像:
参加人数:1,性别:女,学习程度:研究生
我想创建一个字典,其中键是参与者编号,值是包含所有数据的整个行,如下所示:
{1:女,研究生,美国,是,不,不,是,是,不...}等等。我仍然是一个新手,到目前为止,这是我尝试过的:
with open('surveys.csv', 'r') as f:
reader = csv.reader(f, delimiter=' ')
with open('new_surveys.csv', mode='w') as outfile:
writer = csv.writer(outfile)
mydict = {rows[0]:rows for rows in reader}
print(mydict)
但这会打印出类似的内容:
{'\ufeff"': ['\ufeff"'], '参与者/问题","1.': ['参与者/问题","1.', '性别'], ',2.': [ ',2.', 'Level', 'of', 'study'],} 目前对我来说没有任何意义......
谢谢!
编辑:
这是一整行数据:
解决方案
你可以试试这个?
import csv
with open('surveys.csv', 'r') as f:
reader = csv.reader(f, delimiter=' ')
mydict={}
iterreader = iter(reader)
next(iterreader)
for row in iterreader:
elementsList=row[0].split("\t")
nonEmptyElements=[]
for element in elementsList[1:]:
print(element)
if(not element.strip()==""):
nonEmptyElements.append(element)
valuesList=",".join(nonEmptyElements)
mydict[elementsList[0]]=valuesList
print(mydict)
我的 CSV 看起来像这样
Participant Name Gender
1 Rupin Male
2 Poonam Female
3 Jeshan Male
该代码避免使用第一行。
我的输出看起来像这样
{'1': 'Rupin,Male', '2': 'Poonam,Female', '3': 'Jeshan,Male'}
推荐阅读
- android - 在嵌套滚动视图中如何滚动 pdf 视图
- visual-studio-2019 - 如何在 Visual Studio 中向 Properties.Settings.Default 添加可编辑属性?
- javascript - 是否可以从 HTA 的 IE11 WSShell 中的 WMIC 直接输出?
- pine-script - 要记录的当天第一根蜡烛的高点和低点
- reactjs - 用户停止输入时的搜索仅在第一次有效(React)
- java - 安卓 | 可以在列表中创建一个点彩球吗?
- python - 在尝试量化张量流模型时,“EndVector() 需要 1 个位置参数,但给出了 2 个”
- html - 在单行而不是多行上显示文本
- powershell - wmic 与 powershell 顺序的子命令。(“wmic”然后是下一行“csproduct”)。子命令“csproduct”未执行
- azure - 具有多个站点的应用程序网关的 Azure 流量管理器自定义标头设置