如何在索引切片的用户输入中放入 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'},必须在第一列中指定键才能更新值)
我正在开发一个程序,可以通过用户输入的键和索引将文本文件转换为 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'},必须在第一列中指定键才能更新值)