コード例 #1
0
def printKey():
    if len(sys.argv) < 4:
        print(msg_help_printkey)
        return
    try:
        indata = load(sys.argv[2])
    except:
        return "No JSON object could be decoded"
    if not indata:
        print(msg_file_not_found)
        return
    if not isin(indata, sys.argv[1]): print("no found!")
    else:
        for value in findkey(indata, sys.argv[1]):
            if not isinstance(value, list):
                print("the corresponding value is not list!")
                break
            for item in value:
                if not isinstance(item, dict): continue
                output = ""
                for index in range(3, len(sys.argv)):
                    subkey = sys.argv[index]
                    if not isin(item, subkey): continue
                    subvalue = findkey(item, subkey)
                    try:
                        output += " %s" % str(subvalue)
                    except:
                        continue
                print(output)
コード例 #2
0
def delKey():
    if len(sys.argv) < 3:
        print(msg_help_delkey)
        return
    elif len(sys.argv) == 3:
        answer = raw_input(
            msg_no_output) if sys.version_info[0] == 2 else input(
                msg_no_output)
        if not answer or any(symbol in answer[0] for symbol in yes_symbols):
            outpath = sys.argv[2]
        elif any(symbol in answer[0] for symbol in no_symbols):
            return
        else:
            outpath = answer
    else:
        outpath = sys.argv[3]
    try:
        indata = load(sys.argv[2])
        key = sys.argv[1]
    except:
        return "No JSON object could be decoded"
    if not indata:
        print(msg_file_not_found)
        return
    delkey(indata, key)
    rmempty(indata)
    save(indata, outpath)
コード例 #3
0
def replValue():
    if len(sys.argv) < 5:
        print(msg_help_replvalue)
        return
    elif len(sys.argv) == 5:
        answer = raw_input(
            msg_no_output) if sys.version_info[0] == 2 else input(
                msg_no_output)
        if not answer or any(symbol in answer[0] for symbol in yes_symbols):
            outpath = sys.argv[4]
        elif any(symbol in answer[0] for symbol in no_symbols):
            return
        else:
            outpath = answer
    elif len(sys.argv[5]) == 1:
        answer = sys.argv[5]
        outpath = sys.argv[4]
    else:
        outpath = sys.argv[5]
    # load
    try:
        indata = load(sys.argv[4])
    except:
        return "No JSON object could be decoded"
    if not indata:
        print(msg_file_not_found)
        return
    # process
    replvalue(indata, sys.argv[1], sys.argv[2], sys.argv[3])
    # save
    if answer and any(symbol in answer[0] for symbol in print_symbols):
        print(indata)
        return
    else:
        save(indata, outpath)
コード例 #4
0
def beautify():
    if len(sys.argv) < 2:
        print(msg_help_rmempty)
        return
    elif len(sys.argv) == 2:
        answer = raw_input(
            msg_no_output) if sys.version_info[0] == 2 else input(
                msg_no_output)
        if not answer or any(symbol in answer[0] for symbol in yes_symbols):
            outpath = sys.argv[1]
        elif any(symbol in answer[0] for symbol in no_symbols):
            return
        else:
            outpath = answer
    else:
        outpath = sys.argv[2]
    # load
    try:
        indata = load(sys.argv[1])
    except:
        return "No JSON object could be decoded"
    if not indata:
        print(msg_file_not_found)
        return
    # save
    save(indata, outpath)
コード例 #5
0
ファイル: cli.py プロジェクト: fly-dragon-2030/handy-sample
def main():
    parser.add_argument(
        '-m',
        '--mode',
        default='json',
        help='modes: json, document, hack, file, network (default: json)')
    parser.add_argument('-x',
                        '--func',
                        default='delkey',
                        help='functions: delkey,rmkey ...')
    parser.add_argument('-d', '--data', default='', help='input data')
    parser.add_argument('-i',
                        '--inpath',
                        default='',
                        help='indicates input file path.')
    parser.add_argument('-o',
                        '--outpath',
                        default='',
                        help='indicates output file path.')
    args = parser.parse_args()
    from handy.misc import switch
    for mode in switch(args.mode):
        if mode('json'):
            for func in switch(args.func):
                from handy.jzon.handler import load, save
                from handy.dict.mixedict import delkey, rmempty, isin
                if func('delkey'):
                    if not args.inpath:
                        print('add input path with -i/--inpath.')
                        break
                    if not args.data:
                        print('add keyname to be deleted with -d/--data.')
                        break
                    if not args.outpath:
                        answer = raw_input(
                            msg_no_output
                        ) if sys.version_info[0] == 2 else input(msg_no_output)
                        if any(symbol in answer[0] for symbol in yes_symbols):
                            args.outpath = args.inpath
                        elif any(symbol in answer[0] for symbol in no_symbols):
                            break
                        else:
                            args.outpath = answer
                    data = load(args.inpath)
                    if not data:
                        print("input file doesn't exist or wrong file.")
                        break
                    delkey(data, args.data)
                    rmempty(data)
                    save(data, args.outpath)
                    break
                if func():
                    print('type mode with -x or --func.\n \
                          modes: delkey, rmempty')
                    break
            break
        if mode():
            print('type mode with -m or --mode')
            break
コード例 #6
0
def chKey():
    if len(sys.argv) < 3:
        print(msg_help_chkey)
        return
    try:
        indata = load(sys.argv[2])
    except:
        return "No JSON object could be decoded"
    if not indata:
        print(msg_file_not_found)
        return
    if not isin(indata, sys.argv[1]): print("no found!")
    else: print("found!!!")