Précautions lors de l'utilisation de Pit avec Python

Essayez d'utiliser la fosse et devenez accro

Un puits qui n'écrit pas d'ID de compte ou de mot de passe dans la source et qui est invité à entrer lors de l'exécution. C'est une très bonne bibliothèque pour la sécurité, mais j'y suis accro lorsque je l'utilise en Python, alors prenez-en note.

Cliquez ici pour les versions python et pip que j'ai essayées.

$ python -V
Python 2.7.9

$ pip freeze | grep pit
pit==0.3

L'éditeur ne démarre pas au moment de l'exécution

Cliquez ici pour la description minimale.

import pit

opts = {
    'require': {
        'id': 'your id',
        'password': 'your password',
    }
}
account = pit.Pit.get('test.account', opts)

print account['id']
print account['password']

Mais quand je l'exécute, j'obtiens une erreur. Pour une raison quelconque, l'éditeur ne démarre pas lors de la première exécution. Puisque vous n'avez pas entré à la fois l'identifiant et le mot de passe, vous obtiendrez naturellement une KeyError lors de l'obtention de la valeur.

>>> import pit
>>>
>>> opts = {
...     'require': {
...         'id': 'your id',
...         'password': 'your password',
...     }
... }
>>> account = pit.Pit.get('test.account', opts)
>>> print account['id']

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'id'

Dans l'état par défaut, aucun éditeur n'était spécifié, j'ai donc dû spécifier vi.

if not os.environ.get('EDITOR'):
    os.environ['EDITOR'] = 'vi'

Corrigez et exécutez. vi a été lancé, il est devenu possible d'entrer et il s'est terminé normalement.

>>> import pit
>>> import os
>>>
>>> if not os.environ.get('EDITOR'):
...     os.environ['EDITOR'] = 'vi'
...
>>> opts = {
...     'require': {
...         'id': 'your id',
...         'password': 'your password',
...     }
... }
>>> account = pit.Pit.get('test.account', opts)
>>> print account['id']
hoge
>>> print account['password']
hogehoge

Des personnages mystérieux (!! python / unicode) s'affichent dans l'éditeur

Quand vous faites cela ...

from __future__ import absolute_import
from __future__ import unicode_literals

import pit
import os

if not os.environ.get('EDITOR'):
    os.environ['EDITOR'] = 'vi'

opts = {
    'require': {
        'id': 'your id',
        'password': 'your password',
    }
}
account = pit.Pit.get('test.account', opts)

print account['id']
print account['password']
!!python/unicode 'id': !!python/unicode 'your id'
!!python/unicode 'password': !!python/unicode 'your password'

Un caractère mystérieux est ajouté lors de la saisie de l'identifiant et du mot de passe dans vi. En conclusion, le problème était que cette ligne était là, donc la supprimer le résoudra.

from __future__ import unicode_literals

Si vous passez le caractère unicode comme argument, le caractère "!! python / unicode" sera affiché. Par conséquent, même si unicode_literals n'est pas spécifié, le même phénomène se produira même s'il est décrit comme ceci.

opts = {
    u'require': {
        u'id': u'your id',
        u'password': u'your password',
    }
}
account = pit.Pit.get('test.account', opts)

Recommended Posts

Précautions lors de l'utilisation de Pit avec Python
Précautions lors de l'utilisation de phantomjs de python
Précautions lors de l'utilisation de six avec Python 2.5
Lors de l'utilisation d'expressions régulières en Python
Précautions lors du décapage d'une fonction en python
Précautions lors de l'utilisation de l'instruction for dans les pandas
Précautions lors de l'utilisation de Chainer
Précautions lors du traitement des structures de contrôle dans Python 2.6
Attention lorsque os.mkdir en Python
Traduit à l'aide de googletrans en Python
Utilisation du mode Python dans le traitement
Paramètres initiaux lors de l'utilisation de l'API foursquare avec python
Précautions lors du traitement du type ROS MultiArray en Python
Comment quitter lors de l'utilisation de Python dans Terminal (Mac)
Programmation GUI en Python avec Appjar
Précautions lors de l'utilisation de l'analyse des traits TextBlob
Comportement lors de la liste dans Python heapq
Précautions lors de l'utilisation de codecs et de pandas
Essayez d'utiliser LevelDB avec Python (plyvel)
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
Précautions lors de l'utilisation de la fonction urllib.parse.quote
Utilisation de variables globales dans les fonctions python
[Python] Soyez prudent lorsque vous utilisez print
Voyons voir l'utilisation de l'entrée en python
Puissance totale en Python (en utilisant functools)
Résolvez le problème japonais lors de l'utilisation du module CSV en Python.
Précautions lors de la création d'un générateur Python
Précautions lors de l'utilisation de Python avec AtCoder
Scripts pouvant être utilisés lors de l'utilisation de Bottle en Python
Choses à garder à l'esprit lors de l'utilisation de cgi avec python.
Reconnaissance de caractères manuscrits à l'aide de KNN en Python
Essayez d'utiliser LeapMotion avec Python
Recherche de priorité de profondeur à l'aide de la pile en Python
Lors de l'utilisation de MeCab avec python dans virtualenv
Lors de l'écriture d'un programme en Python
Création d'interface graphique en python avec tkinter 2
Choses à surveiller lors de l'utilisation d'arguments par défaut en Python
[Python ORM] Notation lors de l'écriture de SQL à l'aide de sous-requêtes dans la clause IN dans SQL Alchemy
Précautions lors du passage de def aux fonctions triées et groupby en Python? ??
J'obtiens un attribut impossible à définir lors de l'utilisation de @property en python
Précautions lors de l'attribution de valeurs par défaut aux arguments dans les définitions de fonctions Python
[SEO] Flux / exemple de code lors de l'utilisation de l'API Google Analytics en Python
Lors de la spécification de plusieurs clés dans le tri python
Fonctionnement de la souris à l'aide de l'API Windows en Python
Notes utilisant cChardet et python3-chardet dans Python 3.3.1.
Création d'interface graphique en python à l'aide de tkinter partie 1
Traitement d'exécution périodique lors de l'utilisation de tkinter [Python3]
Obtenir l'équilibre Suica en Python (en utilisant libpafe)
Pratique d'utilisation de ceci en Python (mauvais)
Hachez lentement les mots de passe en utilisant bcrypt en Python
Essayez d'utiliser l'API Kraken avec Python
Utilisation de venv dans un environnement Windows + Docker [Python]
Créer ScriptableObject en Python lors de la construction d'ADX2
[FX] Hit oanda-API avec Python en utilisant Docker
Points à noter lors de la résolution de problèmes DP avec Python
Tweet à l'aide de l'API Twitter en Python
Placement de Fabicon (lors de l'utilisation de Python, Flask, Heroku)
[python, multitraitement] Comportement des exceptions lors de l'utilisation du multitraitement
[Python] [Windows] Communication série en Python à l'aide de DLL