python: как превратить диктовку в файл json? - PullRequest
1 голос
/ 01 апреля 2020

'' '

import openpyxl
from openpyxl import load_workbook
from openpyxl import Workbook
from Tkinter import Tk
from tkFileDialog import askopenfilename
import itertools
import sys
import warnings
import json

def find (param):
    for row in ws.iter_rows():
        try:
            keyword = row[1].value
            values = [item.value for item in row[2:]]
            if keyword == ("%s" %(param) ):
                keyword = (values)
                return keyword
        except (AttributeError):
        continue

if not sys.warnoptions:
    warnings.simplefilter("ignore")

Tk().withdraw()
filename = askopenfilename()
print ("Working, please be patient")
wb = openpyxl.load_workbook(filename, data_only=True)


print ("\r")
count = 0
for ws in wb.worksheets:
    tlist = ws.title
    print ("%s : %s" %(count,tlist) )
    count = count + 1


x = int(input ("\nchoose number:  ") )
ws = wb.worksheets[x]


param = "Site Name"
SiteName = find(param)
SiteName = (SiteName)

param = ("NE Name(TID)")
TID = find(param)
TID = (TID)

param = ("Shelf Number")
SH_Num = find(param)
SH_Num = (SH_Num)

param = ("CLLI")
CLLI = find(param)
CLLI = (CLLI)

z = {'SiteName' : SiteName,"TID" : TID, "SH_Num" : SH_Num}

with open('data7.json', 'w') as f:
    json.dump(z,f,indent=4)
'''

Есть еще много переменных, которые будут в этом. У каждого сайта есть имя сайта, TID, номер полки и т. Д. c. Желание разделить переменные по сайтам; переменные для сайта 1, переменные для сайта 2 и т. д. c .. и доступ к переменным с помощью TID1-SH_Num1 [TID]

OUTPUT =

{
    "SiteName": [
        "Site1", 
        "Site2", 
        "Site3", 

    ], 
    "TID": [
        "TID1", 
        "TID2", 
        "TID3", 
    ], 
    "SH_Num": [
        "SH_Num1", 
        "SH_Num2", 
        "SH_Num3", 

    ]
}

То, что я хочу, это

{
    TID1-SH_Num1: [
        "SiteName" : "SiteName1"
        "TID": "TID1" 
        "SH_Num" : "SH_Num1"
        ], 
    TID2-SH_Num2: [
        "SiteName" : "SiteName2"
        "TID": "TID2" 
        "SH_Num" : "SH_Num2"
        ], 
    ], 
    TID3-SH_Num3: [
        "SiteName" : "SiteName3"
        "TID": "TID3" 
        "SH_Num" : "SH_Num3"
        ], 
}

et c ..

У меня есть такое, где переменные отдельных сайтов находятся в отдельных текстовых файлах для каждого сайта, и все переменные являются правильными для каждого сайта. Желая сделать это в JSON сейчас, чтобы я мог добавить все сайты и переменные во вкладки tkinter

1 Ответ

1 голос
/ 01 апреля 2020

Если у вас есть такой запрос:

a = {
"TID1-SH_Num1": [
    "SiteName" : "SiteName1"
    "TID": "TID1" 
    "SH_Num" : "SH_Num1"
    ], 
"TID2-SH_Num2": [
    "SiteName" : "SiteName2"
    "TID": "TID2" 
    "SH_Num" : "SH_Num2"
    ], 
], 
"TID3-SH_Num3": [
    "SiteName" : "SiteName3"
    "TID": "TID3" 
    "SH_Num" : "SH_Num3"
    ], 
}

Тогда вы можете просто выбросить его в файл:

import json
with open('data7.json', 'w') as f:
    json.dump(a,f,indent=4)
...