Ein Memorandum für diejenigen, die Python sehr gelegentlich verwenden [API-Zugriff JSON- und XML-Parsing-Argument Parsing-Shell-Befehl regulärer Ausdruck]

Ich möchte es verwenden, wenn ich einfach auf die API zugreifen möchte, also werde ich es als Memo belassen Da ich Python nur gelegentlich verwende, gibt es meiner Meinung nach einige Dinge, mit denen ich mich befassen muss. Wenn Sie also Fehler haben oder dies tun sollten, danke.

JSON-Zugriff mit API

# -*- coding:utf-8 -*-

import json, requests

url = 'http://maps.googleapis.com/maps/api/directions/json'

params = dict(
    origin='Chicago,IL',
    destination='Los+Angeles,CA',
    waypoints='Joplin,MO|Oklahoma+City,OK',
    sensor='false'
)

resp = requests.get(url=url, params=params)
data = json.loads(resp.text)
#In der IDE zu ergänzen
if 0: assert isinstance(data, dict)
print data["status"]

XML-Zugriff mit API

import requests, xml.etree.ElementTree as etree

url = 'http://maps.googleapis.com/maps/api/directions/xml'

params = dict(
    origin='Chicago,IL',
    destination='Los+Angeles,CA',
    waypoints='Joplin,MO|Oklahoma+City,OK',
    sensor='false'
)

resp = requests.get(url=url, params=params)
text = resp.text.encode('utf-8')

data = etree.fromstring(text)
#In der IDE zu ergänzen
if 0: assert isinstance(data, etree.Element)
print data.find("status").text

Argument Perspektive

import argparse
parser = argparse.ArgumentParser(description='Beispielbefehl')
parser.add_argument('arg1', help='Application package name(s)')
parser.add_argument('--a', dest="a", help='Application package name(s)')

args = parser.parse_args()
arg1 = args.arg1
print arg1
a = args.a
print a

Eingang

python test.py example --a b

Ausgabe

example
b

Rufen Sie die Befehlszeile auf und extrahieren Sie sie mit einem regulären Ausdruck aus der Zeichenfolge

import subprocess
from subprocess import PIPE
import re

system_dump_command = ["adb", "shell", "dumpsys", "activity", "activities"]
system_dump = subprocess.Popen(system_dump_command, stdout=PIPE, stderr=PIPE).communicate()[0]
running_package_name = re.search(".*TaskRecord.*A[= ]([^^}]*)",system_dump).group(1)
print running_package_name

Die folgende Zeichenfolge stammt aus den Aktivitätsaktivitäten des Befehls adb shell dumpsys

ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
  Stack #0:
    Task id #1
    * TaskRecord{#1 A=com.android.launcher U=0 sz=1}
      numActivities=1 rootWasReset=false userId=0 mTaskType=1 numFullscreen=1 mOnTopOfHome=false
      affinity=com.android.launcher

Mit regulärem Ausdruck

com.android.launcher

Wird herausgenommen.

Recommended Posts

Ein Memorandum für diejenigen, die Python sehr gelegentlich verwenden [API-Zugriff JSON- und XML-Parsing-Argument Parsing-Shell-Befehl regulärer Ausdruck]
[Kurzer Satz] easygui für diejenigen, die sehr einfach eine einfache GUI mit Python verwenden möchten
Ein Hinweis für diejenigen, die Python in Visual Studio verwenden (ich)
Tipps für diejenigen, die verwirrt sind, wie man is und == in Python verwendet