Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python

Versuchen Sie es mit Grube und lassen Sie sich süchtig machen

Ein Pit, der keine Konto-ID oder kein Kennwort in die Quelle schreibt und zur Laufzeit zur Eingabe aufgefordert wird. Es ist eine sehr gute Bibliothek für die Sicherheit, aber ich bin süchtig danach, wenn ich sie in Python verwende. Notieren Sie sie sich also.

Klicken Sie hier für die Python- und Pip-Versionen, die ich ausprobiert habe.

$ python -V
Python 2.7.9

$ pip freeze | grep pit
pit==0.3

Der Editor startet nicht zur Laufzeit

Klicken Sie hier für die Mindestbeschreibung.

import pit

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

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

Aber wenn ich es tatsächlich starte, bekomme ich eine Fehlermeldung. Aus irgendeinem Grund startet der Editor nicht beim ersten Durchlauf. Da Sie weder ID noch Passwort eingegeben haben, erhalten Sie beim Abrufen des Werts natürlich einen KeyError.

>>> 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'

Im Standardzustand wurde kein Editor angegeben, daher musste ich vi angeben.

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

Korrigieren und ausführen. vi wurde gestartet, es wurde möglich, Eingaben zu machen, und es endete normal.

>>> 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

Mysteriöse Zeichen (!! Python / Unicode) werden im Editor angezeigt

Wenn Sie dies tun ...

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'

Bei der Eingabe von ID und Passwort in vi wird ein mysteriöses Zeichen hinzugefügt. Zusammenfassend war das Problem, dass diese Zeile vorhanden war. Wenn Sie sie also löschen, wird sie behoben.

from __future__ import unicode_literals

Wenn Sie das Unicode-Zeichen als Argument übergeben, wird das Zeichen "!! python / unicode" angezeigt. Selbst wenn unicode_literals nicht angegeben wird, tritt daher das gleiche Phänomen auf, selbst wenn es so beschrieben wird.

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

Recommended Posts

Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Vorsichtsmaßnahmen bei der Verwendung von Phantomjs aus Python
Vorsichtsmaßnahmen bei Verwendung von sechs mit Python 2.5
Bei Verwendung regulärer Ausdrücke in Python
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
Vorsichtsmaßnahmen bei Verwendung der for-Anweisung in Pandas
Vorsichtsmaßnahmen bei der Verwendung von Chainer
Vorsichtsmaßnahmen beim Umgang mit Kontrollstrukturen in Python 2.6
Achtung bei os.mkdir in Python
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Grundeinstellungen bei Verwendung der foursquare-API mit Python
Vorsichtsmaßnahmen beim Umgang mit ROS MultiArray in Python
Beenden bei Verwendung von Python in Terminal (Mac)
GUI-Programmierung in Python mit Appjar
Vorsichtsmaßnahmen bei der Verwendung der TextBlob-Merkmalsanalyse
Verhalten beim Auflisten in Python heapq
Vorsichtsmaßnahmen bei der Verwendung von Codecs und Pandas
Versuchen Sie es mit LevelDB mit Python (plyvel)
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
Vorsichtsmaßnahmen bei Verwendung der Funktion urllib.parse.quote
Verwendung globaler Variablen in Python-Funktionen
[Python] Seien Sie vorsichtig, wenn Sie Druck verwenden
Mal sehen, wie man Eingaben in Python verwendet
Gesamtleistung in Python (mit Funktools)
Lösen Sie das japanische Problem, wenn Sie das CSV-Modul in Python verwenden.
Vorsichtsmaßnahmen beim Erstellen eines Python-Generators
Vorsichtsmaßnahmen bei der Verwendung von Python mit AtCoder
Skripte, die bei der Verwendung von Bottle in Python verwendet werden können
Dinge, die Sie bei der Verwendung von CGI mit Python beachten sollten.
Handschriftliche Zeichenerkennung mit KNN in Python
Versuchen Sie es mit LeapMotion mit Python
Suche nach Tiefenpriorität mit Stack in Python
Bei Verwendung von MeCab mit virtualenv python
Beim Schreiben eines Programms in Python
GUI-Erstellung in Python mit tkinter 2
Dinge, auf die Sie achten müssen, wenn Sie Standardargumente in Python verwenden
[Python ORM] Notation beim Schreiben von SQL mithilfe von Unterabfragen in der IN-Klausel in SQL Alchemy
Vorsichtsmaßnahmen beim Übergeben von def an sortierte und gruppierte Funktionen in Python? ??
Bei Verwendung von @property in Python wird ein Attribut nicht festgelegt
Vorsichtsmaßnahmen beim Festlegen von Standardwerten für Argumente in Python-Funktionsdefinitionen
[SEO] Flow / Beispielcode bei Verwendung der Google Analytics-API in Python
Wenn Sie mehrere Schlüssel in Python-Sortierung angeben
Mausbedienung mit Windows-API in Python
Hinweise zur Verwendung von cChardet und python3-chardet in Python 3.3.1.
GUI-Erstellung in Python mit tkinter Teil 1
Periodische Ausführungsverarbeitung bei Verwendung von tkinter [Python3]
Holen Sie sich Suica Balance in Python (mit libpafe)
Übung, dies in Python zu verwenden (schlecht)
Hash-Passwörter langsam mit bcrypt in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Verwenden von venv in der Windows + Docker-Umgebung [Python]
Erstellen Sie ScriptableObject in Python, wenn Sie ADX2 erstellen
[FX] Hit oanda-API mit Python mit Docker
Zu beachtende Punkte bei der Lösung von DP-Problemen mit Python
Tweet mit der Twitter-API in Python
Platzierung von Fabicon (bei Verwendung von Python, Flask, Heroku)
[Python, Multiprocessing] Verhalten für Ausnahmen bei Verwendung von Multiprocessing
[Python] [Windows] Serielle Kommunikation in Python über DLL