3 façons d'analyser les chaînes de temps avec python [Note]

Que veux-tu faire

Je veux faire un mémorandum sur la façon d'analyser l'heure écrite dans le texte dans le type datetime de python.

environnement

Contexte

    1. La date et l'heure apparaissant dans le XML de OpenWeatherMap étaient dans un format que je n'avais jamais vu (uniquement pour moi) et l'heure était GMT (UTC). Il est difficile de gérer la situation où les dates sont différentes en raison du décalage horaire à moins que le processus d'ajout de 2,9 heures ne soit effectué.
    1. J'ai pensé qu'il serait préférable de le mettre dans un moule pré-préparé et de calculer le décalage horaire en plus.

À propos, la date qui apparaît dans XML ressemble à ceci.

2017-07-08T19:33:11

J'en ai trouvé beaucoup en recherchant la méthode d'analyse, je vais donc résumer le code.

import time
from datetime import datetime
from dateutil.parser import parse

start = time.time()
date="2017-07-08T19:33:11" #Chaîne de caractères à analyser
for i in range(100000): #parse()Boucle pour analyser 100 000 fois
    dt1 = parse(date)
elapsed_time_for_parse = time.time() - start #parse()Stocke le temps écoulé lors de l'analyse avec

start = time.time()
for i in range(100000): #strptime()Boucle pour analyser 100 000 fois
    dt2 = datetime.strptime(date, '%Y-%m-%dT%H:%M:%S')
elapsed_time_for_strptime = time.time() - start #strptime()Stocke le temps écoulé lors de l'analyse avec

start = time.time()   
for i in range(100000): #Boucle qui analyse 100 000 fois en coupant une chaîne de caractères
    dt3 = datetime(
        year=int(date[0:4]),month=int(date[5:7]),day=int(date[8:10]),
        hour=int(date[11:13]),minute=int(date[14:16]),second=int(date[17:20])
    )
elapsed_time_for_cutparse = time.time() - start #Stocke le temps écoulé lors de l'analyse avec découpe de chaîne de caractères

print('parse()       takes {:.4f}sec, dt1:{}'.format(elapsed_time_for_parse,dt1))
print('strptime()    takes {:.4f}sec, dt2:{}'.format(elapsed_time_for_strptime,dt2))
print('cut and parse takes {:.4f}sec, dt3:{}'.format(elapsed_time_for_cutparse,dt3))

résultat

Méthode Temps requis
parse() 5.8433
strptime() 1.0622
Découpe de chaîne de caractères 0.2875

Résumé

parse () est facile mais lent d'un seul coup Il est difficile de couper une chaîne de caractères, mais c'est rapide.

Le site que j'ai utilisé comme référence

OpenWeatherMap Code 7 ward La chaîne de caractères de date et d'heure est analysée avec python. Extraire l'année, le mois et l'heure miyalog Python datetime.strptime est très lent

écran de résultat du notebook jupyter

image.png

Recommended Posts

3 façons d'analyser les chaînes de temps avec python [Note]
6 façons d'enchaîner des objets en Python
Analyser XML en Python
Une manière intelligente de chronométrer le traitement avec Python
Remarque pour faire de python un démon
Comparer des chaînes en Python
Inverser les chaînes en Python
Pour représenter la date, l'heure, l'heure et les secondes en Python
Convertir la date et l'heure zonées en temps Unixtime dans Python2.7
Analyser une chaîne JSON écrite dans un fichier en Python
Comment mesurer le temps de traitement avec Python ou Java
Remarque sur l'attribution de textures d'image aux matériaux dans Maya python
Choses à noter lors de l'initialisation d'une liste en Python
Temps de multiplication à plusieurs chiffres jusqu'à 300 millions de chiffres en python
Points à garder à l'esprit lors du traitement des chaînes en Python2
Points à garder à l'esprit lors du traitement des chaînes en Python 3
Je veux manipuler des chaînes dans Kotlin comme Python!
Pour vider stdout en Python
Connectez-vous au site Web en Python
Analyser l'agent utilisateur en Python
Note d'entrée Python dans AtCoder
Parler avec Python [synthèse vocale]
Comment développer en Python
Publier sur Slack en Python
Différentes façons de calculer la similitude entre les données avec python
Autoriser Python à sélectionner la chaîne de caractères du fichier d'entrée dans le dossier
[Python] Comment faire PCA avec Python
[Note] Projet Euler en Python (problème 1-22)
Convertir Markdown en PDF en Python
Comment collecter des images en Python
[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
Comment utiliser SQLite en Python
[Introduction à Python] Comment analyser JSON
Mesurer le temps d'exécution de la fonction en Python
Dans la commande python, python pointe vers python3.8
[Introduction à Python3 Jour 14] Chapitre 7 Chaînes de caractères (7.1.1.1 à 7.1.1.4)
Essayez de calculer Trace en Python
[Introduction à Python3 Jour 15] Chapitre 7 Chaînes de caractères (7.1.2-7.1.2.2)
Python (de la première fois à l'exécution)
Comment utiliser Mysql avec python
Comment envelopper C en Python
Comment utiliser ChemSpider en Python
Clé étrangère dans SQLite de Python [Note]
Comment utiliser PubChem avec Python
5 façons de créer un chatbot Python
Tests de code dans le temps en Python
Comment gérer le japonais avec Python
Une alternative à `pause` en Python
Extraire des chaînes de fichiers avec Python
Déterminez le format de la date et de l'heure avec Python et convertissez-le en Unixtime
Comment écrire en temps réel hors ligne Résolution des problèmes E04 avec Python
Différentes façons de créer un tableau de nombres de 1 à 10 en Python.
[Note] Sites Web relatifs à l'IA / à l'apprentissage automatique / à python [mis à jour de temps en temps]
Comment calculer "xx time" en un seul coup avec Python Timedelta
J'ai essayé d'implémenter PLSA en Python
[Introduction à Python] Comment utiliser la classe en Python?
Essayez de vous connecter à qiita avec Python
Installez Pyaudio pour lire des vagues en python