Utilisation simplecsv.DictReader()Méthodes
Utilisercsv.DictReader()DefieldnamesParamètres
Utilisercsv.DictReader()DerestkeyParamètres
Utilisercsv.DictReader()DerestvalParamètres
Utilisation simplecsv.DictReader()MéthodesExemple 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ètresInreader = 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 :
Utilisercsv.DictReader()DerestkeyParamètres<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
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'.
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 !
Jane Medium : This paper gives
The case shared with you today