Skip to content

Instantly share code, notes, and snippets.

@stripedpurple
Created October 10, 2017 18:40
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stripedpurple/21c1320a5d491c2be99a46743a776d9e to your computer and use it in GitHub Desktop.
Save stripedpurple/21c1320a5d491c2be99a46743a776d9e to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
import sys, json, urllib2
def search (info, key):
if type(info) == dict:
for k, v in info.iteritems():
if (type(v) == dict or type(v) == list) and k != key:
search(v, key)
elif k == key:
print str(v)
return str(v)
elif type(info) == list:
for v in info:
if type(v) == dict or type(v) == list:
search(v, key)
def full_str (info, query_str):
query_str = query_str.split('.')
res = info
for i in query_str:
res = res[i]
return res
def help ():
print "Blind search:\t" + sys.argv[0] + "search <key>"
print "Specific keys:\n\t" + sys.argv[0] + " <key>\n\tOR\n\t" + sys.argv[0] + " <key.key.key>"
if __name__ == "__main__":
arg_len = len(sys.argv)
if arg_len < 2:
print "Error: Option missing\n"
help()
exit()
else:
try:
request = urllib2.urlopen('http://192.168.1.90:8888/api/v1').read()
parsed_json = json.loads(request)
except:
print "Error: Unable to reach api"
exit(1)
if arg_len == 2 and (sys.argv[1] == "-h" or sys.argv[1] == "help"):
help()
elif arg_len == 2 and (sys.argv[1] != "-h" or sys.argv[1] != "help"):
print str(full_str(parsed_json, sys.argv[1]))
elif sys.argv[1] == "search" or sys.argv[1] == "-s":
search(parsed_json, sys.argv[2])
exit()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment