La forma en que Python maneja los datos CSV, JSON y XML es fantástica

Python, especialmente por su excelente simplicidad y facilidad de uso, se ha convertido en la primera opción para los lenguajes de programación de redes y la primera opción para los lenguajes de programación y de datos. Su principal base de datos y bibliotecas de algoritmos se han convertido en el lenguaje preferido para la ciencia de datos de entrada de Python.

En el uso diario, dominan tres formatos de datos, CSV, JSON y XML. A continuación, compartiré sus métodos de procesamiento rápido para tres formatos de datos.

datos CSV

CSV es el método más común para almacenar datos. Estos datos en las competiciones de Kaggle se almacenan de esta manera. CSV se puede leer y escribir utilizando la biblioteca csv de Python incorporada. lista.

Echa un vistazo al código de abajo. Cuando ejecutamos csv.reader(), se puede acceder a todos los datos CSV. La función csvreader.next() lee una línea del CSV, cada vez que se llama, pasa a la siguiente línea. También podemos recorrer cada fila del csv usando una fila en csvreader. Asegúrese de tener el mismo número de columnas en cada fila, de lo contrario, podría terminar con algunos errores al tratar con listas de listas.

import csv 

filename = "my_data.csv"

fields = [] 
rows = []   
# Reading csv file 
with open(filename, 'r') as csvfile: 
    # Creating a csv reader object 
    csvreader = csv.reader(csvfile) 

    # Extracting field names in the first row 
    fields = csvreader.next() 

    # Extracting each data row one by one 
    for row in csvreader: 
        rows.append(row)  
# Printing out the first 5 rows 
for row in rows[:5]: 
    print(row)

Escribir CSV en Python es fácil. Nombres de campo establecidos en un solo y en una lista. Crearemos un objeto listwriter() y usaremos los datos para escribir nuestros datos en el archivo, básicamente de la misma forma en que lo leemos.

import csv 

# Field names 
fields = ['Name', 'Goals', 'Assists', 'Shots'] 

# Rows of data in the csv file 
rows = [ ['Emily', '12', '18', '112'], 
         ['Katie', '8', '24', '96'], 
         ['John', '16', '9', '101'], 
         ['Mike', '3', '14', '82']]

filename = "soccer.csv"

# Writing to csv file 
with open(filename, 'w+') as csvfile: 
    # Creating a csv writer object 
    csvwriter = csv.writer(csvfile) 

    # Writing the fields 
    csvwriter.writerow(fields) 

    # Writing the data rows 
    csvwriter.writerows(rows)

Podemos usar Pandas para convertir el CSV en una lista rápida de diccionarios de una línea. Después de formatear los datos en una lista de diccionarios, usaremos la biblioteca dicttoxml para convertirlos a formato XML. ¡Lo guardamos como un archivo JSON!

import pandas as pd
from dicttoxml import dicttoxml
import json

# Building our dataframe
data = {'Name': ['Emily', 'Katie', 'John', 'Mike'],
        'Goals': [12, 8, 16, 3],
        'Assists': [18, 24, 9, 14],
        'Shots': [112, 96, 101, 82]
        }

df = pd.DataFrame(data, columns=data.keys())

# Converting the dataframe to a dictionary
# Then save it to file
data_dict = df.to_dict(orient="records")
with open('output.json', "w+") as f:
    json.dump(data_dict, f, indent=4)

# Converting the dataframe to XML
# Then save it to file
xml_data = dicttoxml(data_dict).decode()
with open("output.xml", "w+") as f:
    f.write(xml_data)

datos JSON

JSON proporciona un formato conciso y fácil de leer que mantiene una estructura similar a la de un diccionario. Al igual que CSV, Python tiene un módulo JSON incorporado que hace que leer y escribir sea muy rápido. Cuando leemos el CSV en formato de diccionario simple, nuestros datos en formato de diccionario se escriben en el archivo.

import json
import pandas as pd

# Read the data from file
# We now have a Python dictionary
with open('data.json') as f:
    data_listofdict = json.load(f)

# We can do the same thing with pandas
data_df = pd.read_json('data.json', orient='records')

# We can write a dictionary to JSON like so
# Use 'indent' and 'sort_keys' to make the JSON
# file look nice
with open('new_data.json', 'w+') as json_file:
    json.dump(data_listofdict, json_file, indent=4, sort_keys=True)

# And again the same thing with pandas
export = data_df.to_json('new_data.json', orient='records')

Como hemos visto antes, obtenemos datos que se pueden convertir fácilmente a CSV a través de pandas o usando el módulo Python CSV integrado. Al convertir a XML, puede usar la biblioteca dicttoxml. El código específico es el siguiente:

import json
import pandas as pd
import csv

# Read the data from file
# We now have a Python dictionary
with open('data.json') as f:
    data_listofdict = json.load(f)

# Writing a list of dicts to CSV
keys = data_listofdict[0].keys()
with open('saved_data.csv', 'wb') as output_file:
    dict_writer = csv.DictWriter(output_file, keys)
    dict_writer.writeheader()
    dict_writer.writerows(data_listofdict)

datos XML

XML es diferente de CSV y CSV. CSV y JSON son una interpretación JSON fácil de leer y escribir debido a su simplicidad y velocidad. Y ocupa más memoria, transfiere almacenamiento y necesita más espacio, más espacio de almacenamiento y más tiempo de ejecución. Y XML tiene algunas funciones adicionales basadas en JSON y CSV: espacio interno que utiliza para crear y compartir estándares estructurales, una mejor presentación y estándares de la industria para la representación de datos mediante XML, DTD, etc.

Para leer datos XML, usaremos el módulo XML integrado de Python y el submódulo ElementTree. Podemos convertir objetos de ElementTree en diccionarios utilizando la biblioteca xmltodict. como sigue:

import xml.etree.ElementTree as ET
import xmltodict
import json

tree = ET.parse('output.xml')
xml_data = tree.getroot()

xmlstr = ET.tostring(xml_data, encoding='utf8', method='xml')


data_dict = dict(xmltodict.parse(xmlstr))

print(data_dict)

with open('new_data_2.json', 'w+') as json_file:
    json.dump(data_dict, json_file, indent=4, sort_keys=True

Aquí me gustaría recomendar el grupo Q de aprendizaje de Python que construí yo mismo: 1020465983. Todos los grupos están aprendiendo Python. Si quieres aprender o estás aprendiendo Python, puedes unirte. bienes de vez en cuando (solo relacionados con el desarrollo de software de Python),
incluida una copia de los últimos materiales avanzados de Python y enseñanza basada en cero en 2021 que he compilado yo mismo. Bienvenidos a los socios medianos y pequeños avanzados que están interesados ​​en Python !

Supongo que te gusta

Origin blog.csdn.net/weixin_56659172/article/details/124266901
Recomendado
Clasificación