在python中,我有一个csv文件,其中包含很多参数,例如:

Name, Surname, Address1, Address2, email, etc

Adam1,Smith1,12 Connaugh Rd.,,adamsmith@gmail.com, etc...

Adam2,Smith2,12 Connaugh Rd.,,adamsmith@gmail.com, etc...

Adam3,Smith3,12 Connaugh Rd.,,adamsmith@gmail.com, etc...

我如何阅读它,所以第一行名称,姓氏,地址1,地址2,电子邮件等成为字典中参数的名称?这样我就可以

Dict{Name:Adam1,Adam2, Adam3

Surname: Smith1,Smith2,Smith3

Address1: 12 Connaugh Rd.,12 Connaugh Rd.,12 Connaugh Rd.

etc.}

由于我将来会使用它,是使用csv的最佳方法还是有更好的方法?

Update1:​​ripr(row)给出:

{None: ['\tSales Record Number', 'User Id', 'Buyer Full name', 'Buyer Phone Number', 'Buyer Email', 'Buyer Address 1', 'Buyer Address 2', 'Buyer Town/City', 'Buyer County', 'Buyer Postcode', 'Buyer Country', 'Item Number', 'Item Title', 'Custom Label', 'Quantity', 'Sale Price', 'Included VAT Rate', 'Postage and Packaging', 'Insurance', 'Cash on delivery fee', 'Total Price', 'Payment Method', 'Sale Date', 'Checkout Date', 'Paid on Date', 'Dispatch Date ', 'Invoice date', 'Invoice number', 'Feedback left', 'Feedback received', 'Notes to yourself', 'PayPal Transaction ID', 'Delivery Service', 'Cash on delivery option', 'Transaction ID', 'Order ID', 'Variation Details']}

{None: ['3528', 'steve33559', 'Steven sdf', '45678', 'sdfghj@dfgj.com', '1 sdfgh Road, ', '', 'dfgh', 'dfgh', 'ertyu', 'United Kingdom', '151216259484', 'Small stuff ', '', '1', '\xa311.99', '', '\xa30.00', '\xa30.00', '', '\xa311.99', 'PayPal', '21-Mar-14', '21-Mar-14', '21-Mar-14', '', '', '', 'Yes', '', '', '384858394n5838f48', 'Other 24 Hour Courier', '', '49503847573848', '', '']}

{None: ['3529', 'buyretry13', 'Tariq fhb', '345678', 'buyretry@uk.com', '80 rtyukfd Road', '', 'Manchester', 'wertyuk', 'M16 1KY', 'United Kingdom', '76543283858', 'Apple iPhone 5', '100329', '1', '\xa31.95', '', '\xa30.00', '\xa30.00', '', '\xa31.95', 'PayPal', '21-Mar-14', '21-Mar-14', '21-Mar-14', '', '', '', 'Yes', '', '', '45678723456', 'Royal Mail 2nd Class', '', '3456785737', '', '']}

解决方案

您可以用于zip()将列转置为行,并将其应用于字典理解以提取第一个元素作为键:

import csv

with open(yourfile, 'rb') as infile:

reader = csv.reader(infile)

result = {c[0]: c[1:] for c in zip(*reader)}

这将产生一个字典,每个字典在列中的所有条目均作为值列表。

您最好在csv.DictReader()这里使用。每行产生一个dict对象:

import csv

with open(yourfile, 'rb') as infile:

reader = csv.DictReader(infile)

for row in reader:

print row

row那么{'Name': 'Adam1', 'Surname': 'Smith1', 'Address1': 'Connaugh rd.', ...}第一行的位置在哪里{'Name': 'Adam2', 'Surname': 'Smith2', 'Address1': 'Connaugh rd.', ...},等等。该DictReader()对象从CSV数据的第一行获取密钥。

这样可以将每一行数据保持为一个易于访问的对象,而不必在单独的行之间关联数据。

演示:

>>> import csv

>>> sample = '''\

... Name,Surname,Address1,Address2,email,etc

... Adam1,Smith1,12 Connaugh Rd.,,adamsmith@gmail.com,etc...

... Adam2,Smith2,12 Connaugh Rd.,,adamsmith@gmail.com,etc...

... Adam3,Smith3,12 Connaugh Rd.,,adamsmith@gmail.com,etc...

... '''

>>> reader = csv.DictReader(sample.splitlines())

>>> print next(reader)

{'Surname': 'Smith1', 'Name': 'Adam1', 'Address1': '12 Connaugh Rd.', 'Address2': '', 'etc': 'etc...', 'email': 'adamsmith@gmail.com'}

>>> print next(reader)

{'Surname': 'Smith2', 'Name': 'Adam2', 'Address1': '12 Connaugh Rd.', 'Address2': '', 'etc': 'etc...', 'email': 'adamsmith@gmail.com'}

>>> print next(reader)

{'Surname': 'Smith3', 'Name': 'Adam3', 'Address1': '12 Connaugh Rd.', 'Address2': '', 'etc': 'etc...', 'email': 'adamsmith@gmail.com'}

python读取第一行设为字典_将csv读入字典,第一行成为名称相关推荐

  1. python读取传感器数据实时上传_树莓派上利用python读取传感器DHT11的温湿度

    昨晚测试Python操作dht11传感器失败!本来想着利用树莓派,传感器,数据库搭建一个机房环境监控系统,卡在了python读取数据上,怎么读取数据都是有问题.世上无难事,只要肯放弃,决定暂时放弃实验 ...

  2. c++ 字典_再来瞄一眼字典与集合?

    编程本是逆天行,你若不拼怎么赢? 字典相关 字典是Python语言中唯一的映射类型.映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的关系,通常被认为是可变的哈希表. 字典对象 ...

  3. python读取数据的函数详解_你了解文件缓存机制吗?磁盘文件如何读写?Python中open函数详解...

    我们知道,在使用Python打开一个文件时,一般使用的是open()函数,但是你真正了解这个函数么?文件打开后如何进行缓存?对于大文件它是如何处理的?今天,小编带你来详细了解一下-- Python如何 ...

  4. python读取大数据量xml_[C#]_[使用微软OpenXmlSDK (OpenXmlReader)读取xlsx表格] 读取大数据量100万条数据Excel文件解决方案...

    1.OpenXmlSDK是个很好的类库,可惜只能通过C#调用,C#的童鞋又福气了. 2.服务端程序由于没法安装office,所以这个对asp.net网站来说是最理想的库了.需要.net 4.0版本以上 ...

  5. python读取多个txt文件数据恢复_带有Pandas的Python 2.7:如何恢复两个数据帧...

    嗯,一种实现方法是使用isin(但是您也可以使用merge命令来实现它--我都展示了示例).例如: >>> df1 A B C D 0 a b c d 1 e f g h 2 i j ...

  6. python读取xml文件有哪些方法_深入解读Python 解析xml的几种方式

    一,概述 在XML解析方面,Python贯彻了自己开箱即用batteries included的原则, 在自带的标准库中,python提供了大量可以用于处理XML语言的包和工具 二,正文 1,什么是X ...

  7. python读取xlsx文件找不到_在python中打开并读取excel .xlsx文件

    我正在尝试使用python打开一个excel .xlsx文件,但我无法找到办法,我尝试使用pandas但是它想要使用一个名为NumPy的库我试图安装numpy但它仍然可以找不到. 我也尝试过使用xlr ...

  8. python读取odb进行abaqus结果显示_用python读取Abaqus结果的重音'S'

    晚上好 我已经做了一个脚本来获取模型并生成结果.我试图用同一个脚本编写一种读取应力值的方法,但是python说:" File "C:/Users/TFG", line 2 ...

  9. python 如何判断一个函数执行完成_菜鸟来也!50行Python代码一键整理桌面

    我的老同学小马忙于找工作,整天被各种照片信息,和面试笔试资料搞的焦头烂额,很多文件来不及处理,全部都堆放在了一起,久而久之,就造成了桌面非常的混乱,如下图所示: 乱糟糟的桌面,让心情也会潜移默化的变得 ...

  10. python将一个字典的内容添加到另一个字典_将两个字典值合并为一个,然后将其添加到Python中的另一个字典中...

    我的任务是使部门和部门列表,教授和学科作为参数接收.我需要过滤整个列表并返回该部门的代码,教授和学科,而无需迭代或使用递归.我已经过滤了该部门的输入,但是我不知道如何列出仅由名字和姓作为第一字典级联的 ...

最新文章

  1. 接口里面的静态方法--痒啊
  2. Hbuilder 常用快捷键汇总
  3. php大数组循环嵌套的性能优化
  4. python实现二叉堆中的大顶堆(大根堆)
  5. 【CentOS Linux 7】实验2【Linux多用户管理】
  6. 检索数据_6_过滤记录结合使用别名
  7. 安宁计算机学院,合肥工业大学计算机与信息学院导师介绍:安宁
  8. PullToRefresh
  9. 计算机应用作业2,计算机应用2作业
  10. 爬虫进阶 -- 爬虫相关定义、反爬机制及其破解
  11. 【论文翻译 AAAI 2020 | 知识图谱综述】A Survey on Knowledge Graphs: Representation, Acquisition and Applications
  12. 【翻译】 Unity3D VR 教程:3.VR中的交互
  13. 炒伦敦金哪个平台正规?2021香港排名前10伦敦金交易平台一览
  14. matlab版大学物理学,MATLAB可视化大学物理学(第2版)
  15. Chi-squared 卡方检验
  16. mysql 主辅_Mysql的实时同步 - 主辅同步
  17. CSS实现“大于号”或“小于号”箭头
  18. C#实现自动更新之(程序升级包制作)
  19. 【学习笔记】React+React全家桶学习笔记
  20. RAM ROM 寄存器(Rigester) CPU的关系

热门文章

  1. 登录phpmyadmin提示: #1045 无法登录 MySQL 服务器
  2. 如何实现用Delphi访问Outlook Express的收发邮件箱中的邮件?
  3. (自动重命名论文)PaperDownloader (Chrome插件) + EndNote (附下载链接) + Zotero
  4. 2019windows上安装Mac OS 10.14过程详细截图
  5. PAT1018 Public Bike Management【dfs】【最短路】
  6. ArrayList实现原理及源码分析之JDK8
  7. 反转字符串中的元音字符
  8. springBoot springSecurty: x-frame-options deny禁止iframe调用
  9. 【Selenium2】【Shell】
  10. POJ 2728 Desert King:最优比率生成树