-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmobile
executable file
·65 lines (45 loc) · 1.7 KB
/
mobile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/usr/bin/env python
# vim: set fileencoding=utf-8 :
import sys
import urllib
import json
from locale import getdefaultlocale
from argparse import ArgumentParser
default_encoding = getdefaultlocale()[1]
url = "http://api.showji.com/Locating/default.aspx?m={0:d}&output=json"
def query(number):
try:
number = int(number)
except ValueError as e:
raise ValueError( "%s is not a string of number" % number)
reply = urllib.urlopen( url.format(number) ).read()
# surprise! it returns utf-8 encoded data, not gbk!
return json.loads(reply, encoding='utf-8')
display_formater= u"\t".join(
[ u"{d[Mobile]:s}",
u"{d[Province]:s}",
u"{d[City]:s}",
u"{d[AreaCode]:s}",
u"{d[PostCode]:s}",
u"{d[Corp]:s}",
u"{d[Card]:s}",
]
)
def display(data):
if data[u'QueryResult'] == u'True' :
result = display_formater.format(d=data)
else:
result = u"{0:} is not found".format(number)
return result
if __name__ == '__main__':
argparser = ArgumentParser(
description= "query various info about mobile number. "
)
argparser.add_argument( "numbers",
metavar="NUMBER",
nargs='*',
help="mobile number to query."
)
args = argparser.parse_args()
for number in args.numbers:
print display(query(number)).encode(default_encoding)