如何使用python将制表符分隔的文本文件转换为JSON

时间:2019-02-20 03:11:31

标签: python python-requests

您能帮我以这种形式输出此文本吗?

即txt信息

     1  0    500  0    0    592        46365838         sysadmin@ol_informix1210:.destroy
     2  0    27   0    0    592        46400038         sysadmin@ol_informix1210:.destroy
     3  0    487  0    0    1215       4631ec38         sysadmin@ol_informix1210:.equal
     4  1    547  0    0    2          4697a838         sysadmin@ol_informix1210:.task
     5  1    560  0    0    329        466a8c38         sysadmin@ol_informix1210:.exectask
     6  1    463  0    0    39930      463fe838         sysadmin@ol_informix1210:.assign
     7  2    542  0    0    2          462fec38         sysadmin@ol_informix1210:.task
     8  2    642  0    0    6          46879038         sysadmin@ol_informix1210:.mon_estimate_compression
     9  2    532  0    0    140        4641d438         sysmaster@ol_informix1210:.bitval
    10  2    575  1    0    1          45cbea20         sysadmin@ol_informix1210:.db_sched
    11  3    603  0    0    46         4657a038         sysadmin@ol_informix1210:.check_backup
    12  3    133  0    0    39930      463fc838         sysadmin@ol_informix1210:.assign
    13  3    33   0    0    592        46406438         sysadmin@ol_informix1210:.destroy
    14  4    598  188  0    188        466aac38         sysadmin@ol_informix1210:.rwt_db_purge_tables
    15  4    28   0    0    39930      46367c38         sysadmin@ol_informix1210:.assign
    16  5    548  0    0    2          46aaf838         sysadmin@ol_informix1210:.task
    17  5    503  0    0    14         4697ec38         sysadmin@ol_informix1210:.compare
    18  7    503  0    0    28         4689c438         sysmaster@ol_informix1210:.compare
    19  8    541  0    0    2          46a13438         sysadmin@ol_informix1210:.task
    20  8    49   0    0    592        4635e838         sysadmin@ol_informix1210:.destroy
    21  8    3    1    0    565        4636a038         sysadmin@ol_informix1210:.ikeyextractcolno
    22  9    466  0    0    14         46a4f038         sysutils@ol_informix1210:.compare
    23  9    31   0    0    592        46400c38         sysadmin@ol_informix1210:.destroy
    24  10   486  0    0    14         46689838         sysadmin@ol_informix1210:.compare
    25  10   80   0    0    1760       4671cc38         sysutils@ol_informix1210:.ifx_allow_newline
    26  10   26   0    0    39930      46367038         sysadmin@ol_informix1210:.assign
    27  11   546  0    0    2          46bd2838         sysadmin@ol_informix1210:.task
    28  12   466  0    0    14         4689d838         sysuser@ol_informix1210:.compare
    29  12   486  0    0    28         4689b038         sysmaster@ol_informix1210:.compare
    30  12   574  4    0    158        4642dc38         sysadmin@ol_informix1210:.db_sch_worker
    31  12   464  0    0    592        46360838         sysadmin@ol_informix1210:.destroy
    32  13   602  0    0    46         467ec038         sysadmin@ol_informix1210:.tabnames_save_diffs
    33  13   80   0    0    1969       464c2c38         sysuser@ol_informix1210:.ifx_allow_newline
    34  13   32   0    0    592        46358038         sysadmin@ol_informix1210:.destroy
    35  14   539  0    0    2          4672e038         sysadmin@ol_informix1210:.task
    36  14   652  0    0    1125       4656f038         sysadmin@ol_informix1210:.lowmemoryreconfig
    37  14   47   0    0    39930      463fb838         sysadmin@ol_informix1210:.assign
    38  15   634  14   0    14         467ff838         sysadmin@ol_informix1210:.aus_refresh_stats
    39  16   562  0    0    47         466a9c38         sysadmin@ol_informix1210:.exectask
    40  17   545  0    0    2          464b8038         sysadmin@ol_informix1210:.task
    41  17   467  0    0    1215       462f1838         sysadmin@ol_informix1210:.equal
    42  18   540  2    0    2          464ca038         sysadmin@ol_informix1210:.task
    43  18   503  0    0    14         46a51838         sysutils@ol_informix1210:.compare
    44  18   573  0    0    3          4630b8b8         sysadmin@ol_informix1210:.wake_dba
    45  18   48   0    0    592        4635d838         sysadmin@ol_informix1210:.destroy
    46  19   655  0    0    46         46a53c38         sysadmin@ol_informix1210:.alertcleanup
    47  19   568  0    0    109        466fe838         sysadmin@ol_informix1210:.ph_dbs_alert
    48  19   601  0    0    48         46594838         sysadmin@ol_informix1210:.onconfig_save_diffs
    49  19   30   0    0    39930      463f9438         sysadmin@ol_informix1210:.assign
    50  21   503  0    0    14         468de038         sysuser@ol_informix1210:.compare
    51  22   561  0    0    47         466a5838         sysadmin@ol_informix1210:.exectask
    52  22   483  0    0    39930      4636b838         sysadmin@ol_informix1210:.assign
    53  23   543  0    0    2          46870838         sysadmin@ol_informix1210:.task
    54  23   486  0    0    14         46a50438         sysutils@ol_informix1210:.compare
    55  23   589  0    0    1125       46530838         sysadmin@ol_informix1210:.mon_low_storage
    56  24   571  0    0    8          4636d838         sysadmin@ol_informix1210:.ph_reset_next_execution
    57  24   46   0    0    39930      463fa838         sysadmin@ol_informix1210:.assign
    58  25   29   0    0    39930      46369038         sysadmin@ol_informix1210:.assign
    59  26   538  0    0    46         46a8f038         sysmaster@ol_informix1210:.partpagenum
    60  26   486  0    0    14         468dbc38         sysuser@ol_informix1210:.compare
    61  26   484  0    0    592        46365038         sysadmin@ol_informix1210:.destroy
    62  27   544  0    0    2          46be9838         sysadmin@ol_informix1210:.task
    63  27   466  0    0    14         468e0438         sysadmin@ol_informix1210:.compare
    64  27   631  0    0    47         46757838         sysadmin@ol_informix1210:.aus_evaluate_stats
    65  27   499  0    0    39930      4636c838         sysadmin@ol_informix1210:.assign
    66  27   577  1    0    1          463b0038         sysadmin@ol_informix1210:.dbutil
    67  28   559  0    0    47         46694838         sysadmin@ol_informix1210:.exectask
    68  28   134  0    0    592        4635f838         sysadmin@ol_informix1210:.destroy
    69  28   80   0    0    18511      46297af8         sysadmin@ol_informix1210:.ifx_allow_newline
    70  29   466  0    0    28         466a4c38         sysmaster@ol_informix1210:.compare
    71  29   600  0    0    47         46691038         sysadmin@ol_informix1210:.rwt_purge_tables
    72  30   80   0    0    8154       4671c038         sysmaster@ol_informix1210:.ifx_allow_newline
    73  30   472  0    0    408        464b4838         sysadmin@ol_informix1210:.lessthanorequal

是要输出的linux shell:

    [
            {
                     "NUM":"1","list":"0","id":"500","ref":"0","drop":"0","hits":"592","heap_ptr":"46365838","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"2","list":"0","id":"27","ref":"0","drop":"0","hits":"592","heap_ptr":"46400038","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"3","list":"0","id":"487","ref":"0","drop":"0","hits":"1215","heap_ptr":"4631ec38","udr_name":"sysadmin@ol_informix1210:.equal"},
            {
                     "NUM":"4","list":"1","id":"547","ref":"0","drop":"0","hits":"2","heap_ptr":"4697a838","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"5","list":"1","id":"560","ref":"0","drop":"0","hits":"329","heap_ptr":"466a8c38","udr_name":"sysadmin@ol_informix1210:.exectask"},
            {
                     "NUM":"6","list":"1","id":"463","ref":"0","drop":"0","hits":"39930","heap_ptr":"463fe838","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"7","list":"2","id":"542","ref":"0","drop":"0","hits":"2","heap_ptr":"462fec38","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"8","list":"2","id":"642","ref":"0","drop":"0","hits":"6","heap_ptr":"46879038","udr_name":"sysadmin@ol_informix1210:.mon_estimate_compression"},
            {
                     "NUM":"9","list":"2","id":"532","ref":"0","drop":"0","hits":"140","heap_ptr":"4641d438","udr_name":"sysmaster@ol_informix1210:.bitval"},
            {
                     "NUM":"10","list":"2","id":"575","ref":"1","drop":"0","hits":"1","heap_ptr":"45cbea20","udr_name":"sysadmin@ol_informix1210:.db_sched"},
            {
                     "NUM":"11","list":"3","id":"603","ref":"0","drop":"0","hits":"46","heap_ptr":"4657a038","udr_name":"sysadmin@ol_informix1210:.check_backup"},
            {
                     "NUM":"12","list":"3","id":"133","ref":"0","drop":"0","hits":"39930","heap_ptr":"463fc838","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"13","list":"3","id":"33","ref":"0","drop":"0","hits":"592","heap_ptr":"46406438","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"14","list":"4","id":"598","ref":"188","drop":"0","hits":"188","heap_ptr":"466aac38","udr_name":"sysadmin@ol_informix1210:.rwt_db_purge_tables"},
            {
                     "NUM":"15","list":"4","id":"28","ref":"0","drop":"0","hits":"39930","heap_ptr":"46367c38","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"16","list":"5","id":"548","ref":"0","drop":"0","hits":"2","heap_ptr":"46aaf838","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"17","list":"5","id":"503","ref":"0","drop":"0","hits":"14","heap_ptr":"4697ec38","udr_name":"sysadmin@ol_informix1210:.compare"},
            {
                     "NUM":"18","list":"7","id":"503","ref":"0","drop":"0","hits":"28","heap_ptr":"4689c438","udr_name":"sysmaster@ol_informix1210:.compare"},
            {
                     "NUM":"19","list":"8","id":"541","ref":"0","drop":"0","hits":"2","heap_ptr":"46a13438","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"20","list":"8","id":"49","ref":"0","drop":"0","hits":"592","heap_ptr":"4635e838","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"21","list":"8","id":"3","ref":"1","drop":"0","hits":"565","heap_ptr":"4636a038","udr_name":"sysadmin@ol_informix1210:.ikeyextractcolno"},
            {
                     "NUM":"22","list":"9","id":"466","ref":"0","drop":"0","hits":"14","heap_ptr":"46a4f038","udr_name":"sysutils@ol_informix1210:.compare"},
            {
                     "NUM":"23","list":"9","id":"31","ref":"0","drop":"0","hits":"592","heap_ptr":"46400c38","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"24","list":"10","id":"486","ref":"0","drop":"0","hits":"14","heap_ptr":"46689838","udr_name":"sysadmin@ol_informix1210:.compare"},
            {
                     "NUM":"25","list":"10","id":"80","ref":"0","drop":"0","hits":"1760","heap_ptr":"4671cc38","udr_name":"sysutils@ol_informix1210:.ifx_allow_newline"},
            {
                     "NUM":"26","list":"10","id":"26","ref":"0","drop":"0","hits":"39930","heap_ptr":"46367038","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"27","list":"11","id":"546","ref":"0","drop":"0","hits":"2","heap_ptr":"46bd2838","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"28","list":"12","id":"466","ref":"0","drop":"0","hits":"14","heap_ptr":"4689d838","udr_name":"sysuser@ol_informix1210:.compare"},
            {
                     "NUM":"29","list":"12","id":"486","ref":"0","drop":"0","hits":"28","heap_ptr":"4689b038","udr_name":"sysmaster@ol_informix1210:.compare"},
            {
                     "NUM":"30","list":"12","id":"574","ref":"4","drop":"0","hits":"158","heap_ptr":"4642dc38","udr_name":"sysadmin@ol_informix1210:.db_sch_worker"},
            {
                     "NUM":"31","list":"12","id":"464","ref":"0","drop":"0","hits":"592","heap_ptr":"46360838","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"32","list":"13","id":"602","ref":"0","drop":"0","hits":"46","heap_ptr":"467ec038","udr_name":"sysadmin@ol_informix1210:.tabnames_save_diffs"},
            {
                     "NUM":"33","list":"13","id":"80","ref":"0","drop":"0","hits":"1969","heap_ptr":"464c2c38","udr_name":"sysuser@ol_informix1210:.ifx_allow_newline"},
            {
                     "NUM":"34","list":"13","id":"32","ref":"0","drop":"0","hits":"592","heap_ptr":"46358038","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"35","list":"14","id":"539","ref":"0","drop":"0","hits":"2","heap_ptr":"4672e038","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"36","list":"14","id":"652","ref":"0","drop":"0","hits":"1126","heap_ptr":"4656f038","udr_name":"sysadmin@ol_informix1210:.lowmemoryreconfig"},
            {
                     "NUM":"37","list":"14","id":"47","ref":"0","drop":"0","hits":"39930","heap_ptr":"463fb838","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"38","list":"15","id":"634","ref":"14","drop":"0","hits":"14","heap_ptr":"467ff838","udr_name":"sysadmin@ol_informix1210:.aus_refresh_stats"},
            {
                     "NUM":"39","list":"16","id":"562","ref":"0","drop":"0","hits":"47","heap_ptr":"466a9c38","udr_name":"sysadmin@ol_informix1210:.exectask"},
            {
                     "NUM":"40","list":"17","id":"545","ref":"0","drop":"0","hits":"2","heap_ptr":"464b8038","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"41","list":"17","id":"467","ref":"0","drop":"0","hits":"1215","heap_ptr":"462f1838","udr_name":"sysadmin@ol_informix1210:.equal"},
            {
                     "NUM":"42","list":"18","id":"540","ref":"2","drop":"0","hits":"2","heap_ptr":"464ca038","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"43","list":"18","id":"503","ref":"0","drop":"0","hits":"14","heap_ptr":"46a51838","udr_name":"sysutils@ol_informix1210:.compare"},
            {
                     "NUM":"44","list":"18","id":"573","ref":"0","drop":"0","hits":"3","heap_ptr":"4630b8b8","udr_name":"sysadmin@ol_informix1210:.wake_dba"},
            {
                     "NUM":"45","list":"18","id":"48","ref":"0","drop":"0","hits":"592","heap_ptr":"4635d838","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"46","list":"19","id":"655","ref":"0","drop":"0","hits":"46","heap_ptr":"46a53c38","udr_name":"sysadmin@ol_informix1210:.alertcleanup"},
            {
                     "NUM":"47","list":"19","id":"568","ref":"0","drop":"0","hits":"109","heap_ptr":"466fe838","udr_name":"sysadmin@ol_informix1210:.ph_dbs_alert"},
            {
                     "NUM":"48","list":"19","id":"601","ref":"0","drop":"0","hits":"48","heap_ptr":"46594838","udr_name":"sysadmin@ol_informix1210:.onconfig_save_diffs"},
            {
                     "NUM":"49","list":"19","id":"30","ref":"0","drop":"0","hits":"39930","heap_ptr":"463f9438","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"50","list":"21","id":"503","ref":"0","drop":"0","hits":"14","heap_ptr":"468de038","udr_name":"sysuser@ol_informix1210:.compare"},
            {
                     "NUM":"51","list":"22","id":"561","ref":"0","drop":"0","hits":"47","heap_ptr":"466a5838","udr_name":"sysadmin@ol_informix1210:.exectask"},
            {
                     "NUM":"52","list":"22","id":"483","ref":"0","drop":"0","hits":"39930","heap_ptr":"4636b838","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"53","list":"23","id":"543","ref":"0","drop":"0","hits":"2","heap_ptr":"46870838","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"54","list":"23","id":"486","ref":"0","drop":"0","hits":"14","heap_ptr":"46a50438","udr_name":"sysutils@ol_informix1210:.compare"},
            {
                     "NUM":"55","list":"23","id":"589","ref":"0","drop":"0","hits":"1126","heap_ptr":"46530838","udr_name":"sysadmin@ol_informix1210:.mon_low_storage"},
            {
                     "NUM":"56","list":"24","id":"571","ref":"0","drop":"0","hits":"8","heap_ptr":"4636d838","udr_name":"sysadmin@ol_informix1210:.ph_reset_next_execution"},
            {
                     "NUM":"57","list":"24","id":"46","ref":"0","drop":"0","hits":"39930","heap_ptr":"463fa838","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"58","list":"25","id":"29","ref":"0","drop":"0","hits":"39930","heap_ptr":"46369038","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"59","list":"26","id":"538","ref":"0","drop":"0","hits":"46","heap_ptr":"46a8f038","udr_name":"sysmaster@ol_informix1210:.partpagenum"},
            {
                     "NUM":"60","list":"26","id":"486","ref":"0","drop":"0","hits":"14","heap_ptr":"468dbc38","udr_name":"sysuser@ol_informix1210:.compare"},
            {
                     "NUM":"61","list":"26","id":"484","ref":"0","drop":"0","hits":"592","heap_ptr":"46365038","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"62","list":"27","id":"544","ref":"0","drop":"0","hits":"2","heap_ptr":"46be9838","udr_name":"sysadmin@ol_informix1210:.task"},
            {
                     "NUM":"63","list":"27","id":"466","ref":"0","drop":"0","hits":"14","heap_ptr":"468e0438","udr_name":"sysadmin@ol_informix1210:.compare"},
            {
                     "NUM":"64","list":"27","id":"631","ref":"0","drop":"0","hits":"47","heap_ptr":"46757838","udr_name":"sysadmin@ol_informix1210:.aus_evaluate_stats"},
            {
                     "NUM":"65","list":"27","id":"499","ref":"0","drop":"0","hits":"39930","heap_ptr":"4636c838","udr_name":"sysadmin@ol_informix1210:.assign"},
            {
                     "NUM":"66","list":"27","id":"577","ref":"1","drop":"0","hits":"1","heap_ptr":"463b0038","udr_name":"sysadmin@ol_informix1210:.dbutil"},
            {
                     "NUM":"67","list":"28","id":"559","ref":"0","drop":"0","hits":"47","heap_ptr":"46694838","udr_name":"sysadmin@ol_informix1210:.exectask"},
            {
                     "NUM":"68","list":"28","id":"134","ref":"0","drop":"0","hits":"592","heap_ptr":"4635f838","udr_name":"sysadmin@ol_informix1210:.destroy"},
            {
                     "NUM":"69","list":"28","id":"80","ref":"0","drop":"0","hits":"18511","heap_ptr":"46297af8","udr_name":"sysadmin@ol_informix1210:.ifx_allow_newline"},
            {
                     "NUM":"70","list":"29","id":"466","ref":"0","drop":"0","hits":"28","heap_ptr":"466a4c38","udr_name":"sysmaster@ol_informix1210:.compare"},
            {
                     "NUM":"71","list":"29","id":"600","ref":"0","drop":"0","hits":"47","heap_ptr":"46691038","udr_name":"sysadmin@ol_informix1210:.rwt_purge_tables"},
            {
                     "NUM":"72","list":"30","id":"80","ref":"0","drop":"0","hits":"8154","heap_ptr":"4671c038","udr_name":"sysmaster@ol_informix1210:.ifx_allow_newline"},
            {
                     "NUM":"73","list":"30","id":"472","ref":"0","drop":"0","hits":"408","heap_ptr":"464b4838","udr_name":"sysadmin@ol_informix1210:.lessthanorequal"}
    ]

1 个答案:

答案 0 :(得分:1)

请尝试以下python脚本:

import json
import collections as cl

infile = "info.txt"                         # modify to your filename

keys = ["NUM", "list", "id", "ref", "drop", "hits", "heap_ptr", "udr_name"]

# split a list l into sub-lists of n elements
def split_list(l, n):
    for idx in range(0, len(l), n):
        yield l[idx:idx + n]

result = []
with open(infile) as f:
    l = f.read().split()                    # read all file into a list
    sl = list(split_list(l, 8))             # split the list by 8 elemnts
    for i in sl:
        od = cl.OrderedDict(zip(keys, i))   # create an ordered dictionary
        result.append(od)                   # append the dictionary to the list

print(json.dumps(result, indent=4))         # output in json format

输出:

[
    {
        "NUM": "1",
        "list": "0",
        "id": "500",
        "ref": "0",
        "drop": "0",
        "hits": "592",
        "heap_ptr": "46365838",
        "udr_name": "sysadmin@ol_informix1210:.destroy"
    },
    {
        "NUM": "2",
        "list": "0",
        "id": "27",
        "ref": "0",
        "drop": "0",
        "hits": "592",
        "heap_ptr": "46400038",
        "udr_name": "sysadmin@ol_informix1210:.destroy"
    },
    # following lines snipped...

希望这会有所帮助。