Escrever Dicionário no CSV em Python
Este tutorial irá introduzir como escrever uma variável de dicionário num ficheiro csv em Python.
Utilize o módulo csv
para escrever um dicionário num ficheiro CSV em Python
O módulo Python csv
contém ferramentas e funções para manipular ficheiros csv. Há dois métodos fáceis de utilizar para escrever dicionários num ficheiro csv: writer()
e DictWriter()
.
Estes dois métodos têm funções semelhantes; a única diferença é que DictWriter()
é uma classe de invólucro que contém mais funções.
Vamos dar um exemplo inicial com um único dicionário com alguns pares de valores-chave:
dct = {"Name": "John", "Age": "23", "Country": "USA"}
No primeiro exemplo, utilizamos writer()
para aceder a um novo ficheiro csv e inserir o dicionário no mesmo.
import csv
dct = {"Name": "John", "Age": "23", "Country": "USA"}
with open("dct.csv", "w") as f:
writer = csv.writer(f)
for k, v in dct.items():
writer.writerow([k, v])
Como o tipo de acesso ao ficheiro é w
, o conteúdo do ficheiro csv dct.csv
será anulado pelas novas alterações. Se o ficheiro não existir, então será automaticamente criado no mesmo directório.
O conteúdo do ficheiro csv sairá:
Uma vez que existe apenas uma entrada de dicionário, a disposição do ficheiro csv contém todas as chaves na primeira coluna, e os valores estão na segunda coluna.
Exemplo de Utilização de um array de Dicionários
Este foi um exemplo de um único dicionário. E se quiser inserir vários dicionários num único ficheiro csv?
Para este exemplo, a função DictWriter()
será utilizada para escrever num ficheiro csv. O layout do primeiro exemplo do CSV teria também de ser alterado, uma vez que existem múltiplos valores com as mesmas chaves.
A primeira linha deveria conter as etiquetas das chaves, e as linhas subsequentes conteriam os valores para cada entrada de dicionário.
Primeiro, declarar um array de dicionários com os mesmos valores chave.
dct_arr = [
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
Agora escreva este conjunto de dicionários num ficheiro csv utilizando o módulo csv
e o módulo DictWriter()
.
import csv
labels = ["Name", "Age", "Country"]
dct_arr = [
{"Name": "John", "Age": "23", "Country": "USA"},
{"Name": "Jose", "Age": "44", "Country": "Spain"},
{"Name": "Anne", "Age": "29", "Country": "UK"},
{"Name": "Lee", "Age": "35", "Country": "Japan"},
]
try:
with open("csv_dct.csv", "w") as f:
writer = csv.DictWriter(f, fieldnames=labels)
writer.writeheader()
for elem in dct_arr:
writer.writerow(elem)
except IOError:
print("I/O error")
O parâmetro fieldnames
em DictWriter()
é atribuído à variável labels
, que é um array de etiquetas-chave do array de dicionários.
Também é bom praticar o código de embrulho que manipula ficheiros com excepção do manuseamento (try ... except
). Isto no caso de haver erros ou incompatibilidades externas relativamente ao processo de escrita de ficheiros.
Resultado:
Em resumo, o módulo csv
contém todas as funções e ferramentas necessárias para escrever um dicionário num ficheiro csv. Utilizando as funções writer()
e DictWriter()
, ambas podem ser facilmente utilizadas para o conseguir.
Também é bom notar que se embrulham blocos que manipulam ficheiros com excepção do manuseamento para assegurar que os erros IO são apanhados antes de quebrar alguma coisa.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArtigo relacionado - Python CSV
- Leia CSV para Array em Python
- Anexar nova linha a um arquivo CSV em Python
- Converter arquivo CSV em arquivo JSON em Python
- JSON para CSV em Python
- Converter o CSV em Dicionário em Python