如何在索引切片的用户输入中放入 NULL 值?

How to put NULL value in user input for index slicing?

我正在开发一个程序,可以通过用户输入的键和索引将文本文件转换为 json 格式。当每个输入框都用整数填充时它起作用,但只要有空列,它就会 return 错误 file_data [key3EntryName.get()]=content[int(key3EntryStartIndex.get()):int(key3EntryEndIndex.get())] ValueError: invalid literal for int() with base 10: ''

因为我需要 start index 到字符串的末尾,所以我需要 file_data [name] = content[5:]。但问题是我不能在输入框中将 end index 留空。那么如何为空列分配 NULL 值?

我的程序

我的代码

        try:

            for content in data2:
                file_data [key1EntryName.get()] = content[int(key1EntryStartIndex.get()):int(key1EntryEndIndex.get())]
                file_data [key2EntryName.get()] = content[int(key2EntryStartIndex.get()):int(key2EntryEndIndex.get())]
                file_data [key3EntryName.get()] = content[int(key3EntryStartIndex.get()):int(key3EntryEndIndex.get())]
                file_data [key4EntryName.get()] = content[int(key4EntryStartIndex.get()):int(key4EntryEndIndex.get())]
                file_data [key5EntryName.get()] = content[int(key5EntryStartIndex.get()):int(key5EntryEndIndex.get())]

                # output to JSON
                global tmp
                tmp = json.dumps(file_data, ensure_ascii=False, indent="\t") + "\n" + "\n"

                reviewjson.insert(END, tmp)

        except:
            raise

创建一个带有 try-except 块的函数,如果有异常则 return None。

def convertToInt(value):

    try:
        value = int(value)

    except ValueError:
        value = None

    return value

这是一个示例代码

from tkinter import *
import random

file_data = {'data1': 0, 'data2': 0, 'data3':0, 'data4': 0}

content = [random.randint(30, 5000) for x in range(50)]
print(content)

def convertToInt(value):

    try:   
        value = int(value)

    except ValueError:
        value = None

    return value
    
def update():

    for key, entry in zip(keyEntries, entries):
        
        if key.get() in file_data:
            index1, index2 = convertToInt(entry[0].get()), convertToInt(entry[1].get())

            if (index1 and index2) is not None  and index1 > index2:
                index2=None

            file_data[key.get()]=content[index1:index2]   
  
    print(file_data)
    

root = Tk()

entries  = []
keyEntries = []

for x in range(4):

    keyName = Entry(root)
    keyName.grid(row=x, column=0)
    
    entry1 = Entry(root)
    entry1.grid(row=x, column=1)

    entry2 = Entry(root)
    entry2.grid(row=x, column=2)

    entries.append([entry1, entry2])
    keyEntries.append(keyName)

Button(root, text='Update', command=update).grid(row=4, column=0)

root.mainloop()

(注意:键为{'data1'、'data2'、'data3'、'data4'},必须在第一列中指定键才能更新值)