使用Tkinter

时间:2019-02-20 13:56:14

标签: python json tkinter

因此,我按照以下方式以JSON文件的形式获取数据:

json = {
    "moments": [
        {
            "N1": {
                "scheme": "NH3_ISA-GRID",
                "type": "N",
                "rank": "4",
                "moments": [
                    "          Q0        Q1        Q2        Q3        Q4",
                    "0  -1.064525 -0.000004  0.340138  0.000004  0.047612",
                    "1s       NaN -0.105246 -0.000006 -0.208369  0.000035",
                    "1c       NaN  0.036201 -0.000002 -0.482417  0.000005",
                    "2s       NaN       NaN -0.454872 -0.000004  0.734665",
                    "2c       NaN       NaN  0.383145  0.000003  0.979878",
                    "3s       NaN       NaN       NaN -0.105177 -0.000029",
                    "3c       NaN       NaN       NaN -0.097678  0.000015",
                    "4s       NaN       NaN       NaN       NaN  0.454980",
                    "4c       NaN       NaN       NaN       NaN -0.005097"
                ],
                "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA-GRID.mom"
            }
        },
        {
            "H3": {
                "scheme": "NH3_ISA-GRID",
                "type": "HN",
                "rank": "4",
                "moments": [
                    "          Q0        Q1        Q2        Q3        Q4",
                    "0   0.353619 -0.000000  0.022593 -0.000000  0.016054",
                    "1s       NaN -0.020984 -0.000000 -0.010761 -0.000000",
                    "1c       NaN -0.009221 -0.000000  0.007970 -0.000000",
                    "2s       NaN       NaN -0.016711 -0.000000  0.015248",
                    "2c       NaN       NaN  0.016692 -0.000000 -0.009410",
                    "3s       NaN       NaN       NaN  0.003688 -0.000001",
                    "3c       NaN       NaN       NaN  0.025270 -0.000001",
                    "4s       NaN       NaN       NaN       NaN  0.005240",
                    "4c       NaN       NaN       NaN       NaN  0.010030"
                ],
                "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA-GRID.mom"
            }
        },
        {
            "H4": {
                "scheme": "NH3_ISA-GRID",
                "type": "HN",
                "rank": "4",
                "moments": [
                    "          Q0        Q1        Q2        Q3        Q4",
                    "0   0.355424  0.013163  0.011901  0.007411 -0.012933",
                    "1s       NaN -0.012893 -0.004149  0.015750  0.008439",
                    "1c       NaN  0.012746 -0.005790  0.003681  0.013541",
                    "2s       NaN       NaN -0.022555  0.004799  0.003075",
                    "2c       NaN       NaN  0.017714  0.020630  0.003709",
                    "3s       NaN       NaN       NaN -0.004436  0.008474",
                    "3c       NaN       NaN       NaN -0.002779  0.008116",
                    "4s       NaN       NaN       NaN       NaN -0.001628",
                    "4c       NaN       NaN       NaN       NaN  0.006952"
                ],
                "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA-GRID.mom"
            }
        },
        {
            "H5": {
                "scheme": "NH3_ISA-GRID",
                "type": "HN",
                "rank": "4",
                "moments": [
                    "          Q0        Q1        Q2        Q3        Q4",
                    "0   0.355421 -0.013164  0.011902 -0.007411 -0.012934",
                    "1s       NaN -0.012894  0.004148  0.015751 -0.008440",
                    "1c       NaN  0.012746  0.005790  0.003681 -0.013543",
                    "2s       NaN       NaN -0.022556 -0.004800  0.003076",
                    "2c       NaN       NaN  0.017715 -0.020631  0.003710",
                    "3s       NaN       NaN       NaN -0.004436 -0.008476",
                    "3c       NaN       NaN       NaN -0.002779 -0.008116",
                    "4s       NaN       NaN       NaN       NaN -0.001628",
                    "4c       NaN       NaN       NaN       NaN  0.006953"
                ],
                "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA-GRID.mom"
            }
        },
        {
            "N1": {
                "scheme": "NH3_ISA",
                "type": "N",
                "rank": "4",
                "moments": [
                    "          Q0        Q1        Q2        Q3        Q4",
                    "0  -1.064533 -0.000007  0.335373 -0.000034 -0.017676",
                    "1s       NaN -0.130782 -0.000007 -0.990753  0.000019",
                    "1c       NaN  0.044770 -0.000006 -1.404081  0.000034",
                    "2s       NaN       NaN -0.451296 -0.000067  0.804011",
                    "2c       NaN       NaN  0.378061 -0.000150  0.911492",
                    "3s       NaN       NaN       NaN -0.096208  0.000019",
                    "3c       NaN       NaN       NaN -0.714299  0.000027",
                    "4s       NaN       NaN       NaN       NaN  0.441683",
                    "4c       NaN       NaN       NaN       NaN  0.107567"
                ],
                "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA.mom"
            }
        },
        {
            "H3": {
                "scheme": "NH3_ISA",
                "type": "HN",
                "rank": "4",
                "moments": [
                    "          Q0        Q1        Q2        Q3        Q4",
                    "0   0.353608 -0.000001  0.008389 -0.000003  0.014938",
                    "1s       NaN -0.020138  0.000001 -0.008956  0.000011",
                    "1c       NaN -0.011952 -0.000002 -0.013778  0.000006",
                    "2s       NaN       NaN -0.042028  0.000005 -0.002432",
                    "2c       NaN       NaN  0.015945  0.000000 -0.035642",
                    "3s       NaN       NaN       NaN  0.005689 -0.000000",
                    "3c       NaN       NaN       NaN -0.000196  0.000006",
                    "4s       NaN       NaN       NaN       NaN -0.014408",
                    "4c       NaN       NaN       NaN       NaN  0.016101"
                ],
                "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA.mom"
            }
        },
        {
            "H4": {
                "scheme": "NH3_ISA",
                "type": "HN",
                "rank": "4",
                "moments": [
                    "          Q0        Q1        Q2        Q3        Q4",
                    "0   0.355543  0.014180  0.026525  0.004023 -0.017858",
                    "1s       NaN -0.011466  0.015769 -0.009499  0.004331",
                    "1c       NaN  0.013083  0.007198 -0.009804  0.013932",
                    "2s       NaN       NaN -0.018736 -0.004213 -0.015855",
                    "2c       NaN       NaN  0.025705  0.002607 -0.024676",
                    "3s       NaN       NaN       NaN -0.002677  0.013785",
                    "3c       NaN       NaN       NaN -0.006283  0.005618",
                    "4s       NaN       NaN       NaN       NaN -0.010890",
                    "4c       NaN       NaN       NaN       NaN  0.012265"
                ],
                "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA.mom"
            }
        },
        {
            "H5": {
                "scheme": "NH3_ISA",
                "type": "HN",
                "rank": "4",
                "moments": [
                    "          Q0        Q1        Q2        Q3        Q4",
                    "0   0.355539 -0.014183  0.026524 -0.004026 -0.017865",
                    "1s       NaN -0.011466 -0.015768 -0.009489 -0.004317",
                    "1c       NaN  0.013084 -0.007197 -0.009803 -0.013921",
                    "2s       NaN       NaN -0.018737  0.004210 -0.015864",
                    "2c       NaN       NaN  0.025709 -0.002620 -0.024688",
                    "3s       NaN       NaN       NaN -0.002672 -0.013795",
                    "3c       NaN       NaN       NaN -0.006286 -0.005612",
                    "4s       NaN       NaN       NaN       NaN -0.010898",
                    "4c       NaN       NaN       NaN       NaN  0.012263"
                ],
                "file": "/Users/gianluca/Desktop/project/example_molecules/ISA/OUT/NH3_ISA.mom"
            }
        }
    ]
}

如您所见,我想以与以下Zotero引用软件类似的方式显示明显的可重复条目,例如“方案”,“类型”,“等级”等(请参见图1)。因此,它将使用我的JSON键代替“作者”,“标题”等。

zotero referencing software

谁能指出一些可能有用的TKinter(或其他GUI库)python食谱的方向?请注意,我只对图像1的右侧感兴趣,即以类似方式显示JSON的键。此外,我可能对此太想了,任何一般性的建议都将是很好的。

1 个答案:

答案 0 :(得分:1)

只需遍历您的json字典和grid一堆Label。至少您会看到这样的东西:

import tkinter as tk

root = tk.Tk()

json = {...}

num = 0
for item in json["moments"]:
    for k, v in item.items():
        for i,j in v.items():
            tk.Label(root, text=i,width=10,anchor="e",font="Arial 10 bold").grid(row=num,column=0,padx=5,sticky="ne")
            tk.Label(root, text=j if i != "moments" else "\n".join(j),width=65,anchor="w").grid(row=num, column=1,padx=5)
            num+=1
    break

root.mainloop()