程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Opérations Python csv.csv pour les fichiers de format CSV. Méthode dictreader ()

編輯:Python

Table des matières

Utilisation simplecsv.DictReader()Méthodes

Utilisercsv.DictReader()DefieldnamesParamètres

Utilisercsv.DictReader()DerestkeyParamètres

Utilisercsv.DictReader()DerestvalParamètres

Utilisation simplecsv.DictReader()Méthodes

Exemple de code1:

import csvf = open('sample','r',encoding='utf8')reader = csv.DictReader(f)print(reader) # <csv.DictReader object at 0x000002241D730FD0>for line in reader: # readerPour faciliter la compréhension, nous pouvons le considérer comme une liste imbriquéeOrderedDict(Un type de données qui ressemble à une liste)    print(line) # OrderedDict([('id', '1'), ('name', 'jason'), ('age', '18')]) 

samplePour untxtDocumentation,Le contenu du document est le suivant::

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

Le résultat de l'exécution du Code sur la sortie du terminal est :

<csv.DictReader object at 0x000001FCF6FA0FD0>    # De l'exemple de code 1Dansprint(reader)
OrderedDict([('id', '1'), ('name', 'jason'), ('age', '18')])    # De l'exemple de code 1Dansprint(line)
1 jason 18    # De l'exemple de code 1Dansprint(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 Est un type de données qui ressemble à une liste , Les exemples de tuples sont imbriqués dans la liste :line = OrderedDict([('id', '1'), ('name', 'jason'), ('age', '18')]), Le premier élément de chaque Tuple est la clé , Le deuxième élément est la valeur (Similaire à un dictionnaire), D'où viennent les clés dans chaque Tuple ?==Par défaut(Peut être réglé par lui - même)==csv.DictReader() La première ligne de données lue est la clé . Et peut être récupéré par indexation OrderedDictValeurs dans les donnéesprint(line['id'],line['name'],line['age']) # Les valeurs peuvent être indexées par clé (Similaire à un dictionnaire).

Utilisercsv.DictReader()DefieldnamesParamètres

Inreader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'])Ajouter un paramètrefieldnames=['new_id','new_name','new_age'] Utilisé pour spécifier la clé .

Exemple de code2:

import csvf = open('sample','r',encoding='utf8')# AdoptionfieldnamesChamp de spécification du paramètrereader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'])head_row = next(reader) # next()La méthode est utilisée pour déplacer le pointeurprint(reader) # <csv.DictReader object at 0x000002241D730FD0>for line in reader: # readerPour faciliter la compréhension, nous pouvons le considérer comme une liste imbriquéeOrderedDict(Un type de données qui ressemble à une liste)    print(line) # OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20')])     # Indexer les valeurs dans les champs spécifiés et imprimer la sortie     print(line['new_id'],line['new_name'],line['new_age']) # Les valeurs peuvent être indexées par clé (Similaire à un dictionnaire)

next()La méthode est utilisée pour déplacer le pointeur,Exemple de code2Danshead_row = next(reader) La première ligne de données est stockée dans head_rowMoyenne,Une foisnext() Le pointeur déplace une ligne , Le pointeur a été déplacé au début de la deuxième ligne , En relisant les données , Lisez à partir de la deuxième ligne .Si ce n'est pas faithead_row = next(reader) Il y aura plus de résultats dans la sortie OrderedDict([('new_id', 'id'), ('new_name', 'name'), ('new_age', 'age')]) La première ligne de données est également comptée .

Le résultat de l'exécution du Code sur la sortie du terminal est :

<csv.DictReader object at 0x000001D329CF2080>    # De l'exemple de code 2Deprint(reader) 
OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18')])    # De l'exemple de code 2Deprint(line)
1 jason 18    # De l'exemple de code 2Deprint(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

Utilisercsv.DictReader()DerestkeyParamètres

Si la ligne lue a plus de valeurs que la séquence des noms de clés , Les données restantes sont ajoutées comme valeur à restkey Sous la clé .À ce stade, nous modifionssample Ajouter une colonne de données supplémentaire au fichier .
Inreader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'],restkey='hobby')Ajouterrestkey='hobby' Clé utilisée pour spécifier la réception des valeurs supplémentaires ,Et attentionrestkey Une seule valeur peut être passée , Impossible de passer dans la liste ,Type de données Tuple.

samplePour untxtDocumentation,Le contenu du document est le suivant::

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

Exemple de code3:

import csvf = open('sample','r',encoding='utf8')# AdoptionfieldnamesChamp de spécification du paramètre,Au - delà defieldnames La valeur du nombre de touches ,Avecrestkey Clé pour recevoir reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'],restkey='hobby')head_row = next(reader) # next Pour déplacer le pointeur print(reader) # <csv.DictReader object at 0x000002241D730FD0>for line in reader: # readerPour faciliter la compréhension, nous pouvons le considérer comme une liste imbriquéeOrderedDict(Un type de données qui ressemble à une liste)    print(line) # OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20')])     # Indexer les valeurs dans les champs spécifiés et imprimer la sortie     print(line['new_id'],line['new_name'],line['new_age'],line['hobby']) # Les valeurs peuvent être indexées par clé (Similaire à un dictionnaire)

Le résultat de l'exécution du Code sur la sortie du terminal est :

<csv.DictReader object at 0x000001CB6B6030F0>    # De l'exemple de code 3Deprint(reader) 
OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', ['dbj'])]) # De l'exemple de code 3Deprint(line)
1 jason 18    # De l'exemple de code 3Deprint(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

À partir des résultats de l'exécution du Code, nous trouvons des valeurs supplémentaires ,Oui.restkeyClé spécifiéerestkey='hobby'Pour recevoirOrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', ['dbj'])])
Notez que si les touches supplémentaires peuvent être utilisées restkey Réception de la clé spécifiée , Mais il n'a pas pu être imprimé par index ,C'est - à - dire l'exécutionprint(line["hobby"])Si c'est le casKeyError: 'hobby'.

Utilisercsv.DictReader()DerestvalParamètres

Si la ligne lue a moins de valeurs que la séquence des noms de clés , Les touches restantes utilisent des paramètres optionnels restvalValeur en.À ce stade, nous modifionssample Ajouter une colonne de données supplémentaire au fichier .
Inreader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age','hobby'],restval='others')Ajouterrestval='others' Utilisé pour spécifier la valeur par défaut lorsque la valeur correspondante de la clé est vide ,Et attentionrestval Une seule valeur peut également être passée , Impossible de passer dans la liste ,Type de données Tuple.

samplePour untxtDocumentation,Le contenu du document est le suivant::

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

Exemple de code4:

import csvf = open('sample','r',encoding='utf8')# AdoptionfieldnamesChamp de spécification du paramètre,Au - delà defieldnames La valeur du nombre de touches ,Avecrestkey Clé pour recevoir reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age','hobby'],restval='others')head_row = next(reader) # next Pour déplacer le pointeur # print(reader) # <csv.DictReader object at 0x000002241D730FD0>for line in reader: # readerPour faciliter la compréhension, nous pouvons le considérer comme une liste imbriquéeOrderedDict(Un type de données qui ressemble à une liste)    print(line) # OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', 'others')])     # Indexer les valeurs dans les champs spécifiés et imprimer la sortie     print(line['new_id'],line['new_name'],line['new_age'],line['hobby']) # Les valeurs peuvent être indexées par clé (Similaire à un dictionnaire)

Le résultat de l'exécution du Code sur la sortie du terminal est :

OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', 'others')])  # De l'exemple de code 4Deprint(line)
1 jason 18 others  # De l'exemple de code 4Deprint(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

À propos depythonFonctionnementcsv Format du fichier csv.DictReader() L'article de la méthode est présenté ici ,Plus pertinentpython csv.DictReader Méthodes Veuillez rechercher les articles précédents du réseau de développement de logiciels ou continuer à parcourir les articles connexes ci - dessous. J'espère que vous soutiendrez le réseau de développement de logiciels à l'avenir !



  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved