Un mémorandum pour ceux qui utilisent Python très occasionnellement [API d'accès JSON et XML parsing argument parsing shell command expression régulière]

Je veux l'utiliser quand je veux accéder facilement à l'API, donc je vais le laisser comme mémo Comme je n'utilise Python qu'occasionnellement, je pense qu'il y a pas mal de choses à approfondir, donc si vous avez des erreurs ou devriez faire cela, merci.

Accès JSON avec 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)
#Compléter dans l'IDE
if 0: assert isinstance(data, dict)
print data["status"]

Accès XML avec 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)
#Compléter dans l'IDE
if 0: assert isinstance(data, etree.Element)
print data.find("status").text

Point de vue de l'argument

import argparse
parser = argparse.ArgumentParser(description='Exemple de commande')
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

contribution

python test.py example --a b

production

example
b

Appelez la ligne de commande et extrayez de la chaîne avec une expression régulière

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

La chaîne de caractères suivante provient de la commande adb shell dumpsys activity activities

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

Avec expression régulière

com.android.launcher

Est sorti.

Recommended Posts

Un mémorandum pour ceux qui utilisent Python très occasionnellement [API d'accès JSON et XML parsing argument parsing shell command expression régulière]
[Phrase courte] easygui pour ceux qui veulent utiliser une interface graphique simple avec Python très facilement
Une note à ceux qui utilisent Python dans Visual Studio (moi)
Conseils pour ceux qui ne savent pas comment utiliser is et == en Python