我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python中csv.DictReader()方法怎么使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python中csv.DictReader()方法怎么使用

本篇内容介绍了“python中csv.DictReader()方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

简单使用csv.DictReader()方法

示例代码1:

import csvf = open('sample','r',encoding='utf8')reader = csv.DictReader(f)print(reader) # <csv.DictReader object at 0x000002241D730FD0>for line in reader: # reader为了方便理解我们可以把它看成是一个列表嵌套OrderedDict(一种长相类似于列表的数据类型)    print(line) # OrderedDict([('id', '1'), ('name', 'jason'), ('age', '18')])

sample为一个txt文件,文件内容如下:

id,name,age1,jason,182,jian,203,xiaoming,304,dog,40

代码运行在终端输出的结果为:

<csv.DictReader object at 0x000001FCF6FA0FD0>    # 来自于示例代码1中的print(reader)
OrderedDict([('id', '1'), ('name', 'jason'), ('age', '18')])    # 来自于示例代码1中的print(line)
1 jason 18    # 来自于示例代码1中的print(line['id'],line['name'],line['age'])
OrderedDict([('id', '2'), ('name', 'jian'), ('age', '20')])
2 jian 20
OrderedDict([('id', '3'), ('name', 'xiaoming'), ('age', '30')])
3 xiaoming 30
OrderedDict([('id', '4'), ('name', 'dog'), ('age', '40')])
4 dog 40

OrderedDict是一种长相类似于列表的数据类型,该列表中嵌套着元组例:line = OrderedDict([('id', '1'), ('name', 'jason'), ('age', '18')]),每个元组中的第一个元素为键,第二个元素为值(类似于字典),每个元组中的键是哪里来的呢?==默认情况下(可以自己设置的)==csv.DictReader()读到的第一行数据就是键。并且可以通过索引的方法来取出OrderedDict数据中的值print(line['id'],line['name'],line['age']) # 可以通过键进行索引取值(类似于字典)。

使用csv.DictReader()之fieldnames参数

在reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'])中添加参数fieldnames=['new_id','new_name','new_age']用来指定键。

示例代码2:

import csvf = open('sample','r',encoding='utf8')# 通过fieldnames参数指定字段reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'])head_row = next(reader) # next()方法用于移动指针print(reader) # <csv.DictReader object at 0x000002241D730FD0>for line in reader: # reader为了方便理解我们可以把它看成是一个列表嵌套OrderedDict(一种长相类似于列表的数据类型)    print(line) # OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20')])     # 通过指定的字段进行索引取值并打印输出    print(line['new_id'],line['new_name'],line['new_age']) # 可以通过键进行索引取值(类似于字典)

next()方法用于移动指针,示例代码2中的head_row = next(reader)获取的是第一行数据存储在head_row中,执行一次next()指针移动一行,此时指针已经移动到了第二行开头,再次读数据的时候,就从第二行开始读取。如果不执行head_row = next(reader)则输出中还会多出这样的结果OrderedDict([('new_id', 'id'), ('new_name', 'name'), ('new_age', 'age')])第一行数据也被算在了其中。

代码运行在终端输出的结果为:

<csv.DictReader object at 0x000001D329CF2080>    # 来自于示例代码2的print(reader) 
OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18')])    # 来自于示例代码2的print(line)
1 jason 18    # 来自于示例代码2的print(line['new_id'],line['new_name'],line['new_age'])
OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20')])
2 jian 20
OrderedDict([('new_id', '3'), ('new_name', 'xiaoming'), ('new_age', '30')])
3 xiaoming 30
OrderedDict([('new_id', '4'), ('new_name', 'dog'), ('new_age', '40')])
4 dog 40

使用csv.DictReader()之restkey参数

如果读取的行具有比键名序列更多的值,此时则会将剩余的数据作为值添加到restkey中的键下面。此时我们修改sample文件多添加一列数据。
在reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'],restkey='hobby')中添加restkey='hobby'用来指定接收多余值的键,并且要注意restkey只能传入一个值,不能传入列表,元组数据类型。

sample为一个txt文件,文件内容如下:

id,name,age1,jason,18,dbj2,jian,20,lol3,xiaoming,30,game4,dog,40,noting

示例代码3:

import csvf = open('sample','r',encoding='utf8')# 通过fieldnames参数指定字段,超出fieldnames中键数量的值,用restkey中的键来接收reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'],restkey='hobby')head_row = next(reader) # next用于移动指针print(reader) # <csv.DictReader object at 0x000002241D730FD0>for line in reader: # reader为了方便理解我们可以把它看成是一个列表嵌套OrderedDict(一种长相类似于列表的数据类型)    print(line) # OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20')])     # 通过指定的字段进行索引取值并打印输出    print(line['new_id'],line['new_name'],line['new_age'],line['hobby']) # 可以通过键进行索引取值(类似于字典)

代码运行在终端输出的结果为:

<csv.DictReader object at 0x000001CB6B6030F0>    # 来自于示例代码3的print(reader) 
OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', ['dbj'])]) # 来自于示例代码3的print(line)
1 jason 18    # 来自于示例代码3的print(line['new_id'],line['new_name'],line['new_age'])
OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20'), ('hobby', ['lol'])])
2 jian 20
OrderedDict([('new_id', '3'), ('new_name', 'xiaoming'), ('new_age', '30'), ('hobby', ['game'])])
3 xiaoming 30
OrderedDict([('new_id', '4'), ('new_name', 'dog'), ('new_age', '40'), ('hobby', ['noting'])])
4 dog 40

从代码运行结果中我们会发现多出来的值,确实使用restkey指定的键restkey='hobby'来接收了OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', ['dbj'])])
注意虽然多余的键可以用restkey指定的键接收,但是却无法通过索引打印出来,也就是执行print(line["hobby"])的话就会报错KeyError: 'hobby'。

使用csv.DictReader()之restval参数

如果读取的行具有比键名序列更少的值,此时剩余的键则会使用可选参数restval中的值。此时我们修改sample文件多添加一列数据。
在reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age','hobby'],restval='others')中添加restval='others'用来指定键对应值为空时的默认值,并且要注意restval也只能传入一个值,不能传入列表,元组数据类型。

sample为一个txt文件,文件内容如下:

id,name,age1,jason,182,jian,20,lol3,xiaoming,304,dog,40,noting

示例代码4:

import csvf = open('sample','r',encoding='utf8')# 通过fieldnames参数指定字段,超出fieldnames中键数量的值,用restkey中的键来接收reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age','hobby'],restval='others')head_row = next(reader) # next用于移动指针# print(reader) # <csv.DictReader object at 0x000002241D730FD0>for line in reader: # reader为了方便理解我们可以把它看成是一个列表嵌套OrderedDict(一种长相类似于列表的数据类型)    print(line) # OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', 'others')])     # 通过指定的字段进行索引取值并打印输出    print(line['new_id'],line['new_name'],line['new_age'],line['hobby']) # 可以通过键进行索引取值(类似于字典)

代码运行在终端输出的结果为:

OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', 'others')])  # 来自于示例代码4的print(line)
1 jason 18 others  # 来自于示例代码4的print(line['new_id'],line['new_name'],line['new_age'],line['hobby'])
OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20'), ('hobby', 'lol')])
2 jian 20 lol
OrderedDict([('new_id', '3'), ('new_name', 'xiaoming'), ('new_age', '30'), ('hobby', 'others')])3 xiaoming 30 others
OrderedDict([('new_id', '4'), ('new_name', 'dog'), ('new_age', '40'), ('hobby', 'noting')])
4 dog 40 noting

“python中csv.DictReader()方法怎么使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python中csv.DictReader()方法怎么使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python中csv.DictReader()方法怎么使用

本篇内容介绍了“python中csv.DictReader()方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!简单使用csv.Di
2023-07-02

Python中的main方法怎么使用

这篇文章主要介绍“Python中的main方法怎么使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Python中的main方法怎么使用”文章能帮助大家解决问题。正文开始if name == "ma
2023-07-05

怎么在python中使用contextmanager方法

今天就跟大家聊聊有关怎么在python中使用contextmanager方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenS
2023-06-14

怎么在python中使用remove()方法

本篇文章为大家展示了怎么在python中使用remove()方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎
2023-06-14

zip_longest方法怎么在python中使用

本篇文章给大家分享的是有关 zip_longest方法怎么在python中使用,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。python主要应用领域有哪些1、云计算,典型应用O
2023-06-14

怎么在python中使用and方法

这篇文章给大家介绍怎么在python中使用and方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python可以做什么Python是一种编程语言,内置了许多有效的工具,Python几乎无所不能,该语言通俗易懂、容易入
2023-06-14

permutation()方法怎么在python中使用

本篇文章为大家展示了permutation()方法怎么在python中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python主要用来做什么Python主要应用于:1、Web开发;2、数据科学
2023-06-14

np.delete()方法怎么在python中使用

本篇文章为大家展示了np.delete()方法怎么在python中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注
2023-06-14

flush方法怎么在python中使用

本篇文章为大家展示了flush方法怎么在python中使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,Pytho
2023-06-14

python中的defaultdict方法怎么使用

本篇内容介绍了“python中的defaultdict方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!默认值可以很方便众所周知,在
2023-07-06

怎么在python中使用numpy.append()方法

本篇文章为大家展示了怎么在python中使用numpy.append()方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时
2023-06-14

Python中hash加密方法怎么使用

这篇文章主要介绍“Python中hash加密方法怎么使用”,在日常操作中,相信很多人在Python中hash加密方法怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python中hash加密方法怎么使用
2023-06-28

Python中静态方法,类方法,属性方法怎么使用

本篇内容介绍了“Python中静态方法,类方法,属性方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.静态方法通过@static
2023-06-30

python contains方法怎么使用

Python中的`contains()`方法用于检查一个字符串是否包含另一个字符串,并返回一个布尔值。其使用方法如下:```pythonstring.contains(substring)```其中,`string`是要检查的字符串,`su
2023-09-12

python register方法怎么使用

在Python中,`register()`方法是用来注册函数或方法作为回调函数的。它通常用于事件驱动的编程,当某个事件发生时,注册的函数将被调用。下面是一个示例来说明`register()`方法的使用:```pythonclass Even
2023-09-16

Python write()方法怎么使用

Python的`write()`方法用于将指定的字符串写入文件。它的使用方法如下:```pythonfile.write(str)```其中,`file`是一个已经打开的文件对象,`str`是要写入文件的字符串。下面是一个示例,演示了如何使
2023-10-12

python readline方法怎么使用

readline()方法在Python中用于从文件中按行读取数据。它的基本语法如下:file.readline()其中,file是一个已经打开的文件对象。这个方法会从文件的当前位置开始读取一行数据,并将文件指针移动到下一行的开头。以下
python readline方法怎么使用
2024-02-29

Python中怎么使用write()方法写文字

在Python中,可以使用write()方法写入文字到文件中。首先,需要打开一个文件,可以使用open()函数来完成。然后,可以使用write()方法来写入文本。最后,要记得关闭文件。下面是一个例子:```python# 打开文件file
2023-10-12

python魔法方法 __ slots __怎么使用

这篇文章主要讲解了“python魔法方法 __ slots __怎么使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python魔法方法 __ slots __怎么使用”吧!__ slot
2023-07-05

Python中object类特殊方法怎么使用

这篇“Python中object类特殊方法怎么使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中object类
2023-07-05

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录