Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在tkinter中操作treeview数据时出现问题_Python_Sqlite_Tkinter - Fatal编程技术网

Python 在tkinter中操作treeview数据时出现问题

Python 在tkinter中操作treeview数据时出现问题,python,sqlite,tkinter,Python,Sqlite,Tkinter,各位。让我先粘贴代码 c.execute("SELECT * FROM c20 WHERE Position = 'chain';") data1 = c.fetchall() c.execute("SELECT * FROM c20 WHERE Position = 'center';") data2 = c.fetchall() c.execute("SELECT * FROM c20 WHERE Position = 'Total';&qu

各位。让我先粘贴代码

c.execute("SELECT * FROM c20 WHERE Position = 'chain';")
data1 = c.fetchall()
c.execute("SELECT * FROM c20 WHERE Position = 'center';")
data2 = c.fetchall()
c.execute("SELECT * FROM c20 WHERE Position = 'Total';")
data3 = c.fetchall()

data1 = p_mod.list_multiply(data, copies_data)
data2 = p_mod.list_multiply(data2, copies_data)
data3 = p_mod.list_multiply(data3, copies_data)
    
meta_data = [data1, data2, data3]
n = 0
while n != 3:
    for i in meta_data:
        my_tree.insert(parent="", index="end", iid=n, text=f"{n + 1}", values=i)
        n += 1


if n == 3:
    my_tree.pack(pady=20)

root1.mainloop()
这是我需要获取有关需求的查询的代码,所需的输出如下:

conn = sqlite3.connect("userdata.db")
>>> c = conn.cursor()
>>> c.execute("SELECT * FROM c20 WHERE Position = 'chain';")
<sqlite3.Cursor object at 0x00000221DA432F80>
>>> data1 = c.fetchall()         
>>> data1
[('chain', 100, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]
PS D:\RM INCORPORATION\RM Software DEV Company Pvt\Jewellery App> & C:/Users/ONE/AppData/Local/Programs/Python/Python39/python.exe "d:/RM INCORPORATION/RM Software DEV Company Pvt/Jewellery App/contact.py"
h
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\ONE\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1884, in __call__
    return self.func(*args)
  File "d:\RM INCORPORATION\RM Software DEV Company Pvt\Jewellery App\contact.py", line 53, in select
    data1 = p_mod.list_multiply(data, copies_data)
  File "d:\RM INCORPORATION\RM Software DEV Company Pvt\Jewellery App\p_mod.py", line 15, in list_multiply
    data = int(i) * number
ValueError: invalid literal for int() with base 10: 'h'
现在问题出现了。。。 每当我尝试从主代码远程使用函数以相同的输出(data1、data2,…)运行代码时, 它运行成功,但每当我试图在主程序中运行脚本时,它都会给我一个错误

错误如下:

conn = sqlite3.connect("userdata.db")
>>> c = conn.cursor()
>>> c.execute("SELECT * FROM c20 WHERE Position = 'chain';")
<sqlite3.Cursor object at 0x00000221DA432F80>
>>> data1 = c.fetchall()         
>>> data1
[('chain', 100, 350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)]
PS D:\RM INCORPORATION\RM Software DEV Company Pvt\Jewellery App> & C:/Users/ONE/AppData/Local/Programs/Python/Python39/python.exe "d:/RM INCORPORATION/RM Software DEV Company Pvt/Jewellery App/contact.py"
h
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\ONE\AppData\Local\Programs\Python\Python39\lib\tkinter\__init__.py", line 1884, in __call__
    return self.func(*args)
  File "d:\RM INCORPORATION\RM Software DEV Company Pvt\Jewellery App\contact.py", line 53, in select
    data1 = p_mod.list_multiply(data, copies_data)
  File "d:\RM INCORPORATION\RM Software DEV Company Pvt\Jewellery App\p_mod.py", line 15, in list_multiply
    data = int(i) * number
ValueError: invalid literal for int() with base 10: 'h'
让我从主代码远程向您展示与函数一起使用的输出

PS D:\RM INCORPORATION\RM Software DEV Company Pvt\Jewellery App> & C:/Users/ONE/AppData/Local/Programs/Python/Python39/python.exe "d:/RM INCORPORATION/RM Software DEV Company Pvt/Jewellery App/p_mod.py"
('chain', 200, 700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) ('center', 222, 826, 82, 124, 98, 70, 756, 2, 2, 6, 8, 24, 24, 16, 0, 0) ('Total', 422, 1526, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1878, 70)
那有什么问题吗,伙计?
急切地等待某人的回复

您在
列表乘法()中用以下行覆盖了
列表输入

因此,
list\u input
之后将是一个字符串

只要去掉这条线,问题就解决了

还包括以下行:

list_input1 = list_input[1 : -1]
不会将
list\u input
的最后一项复制到
list\u input1

应该是

list_input1 = list_input[1:]

list\u multiply()
可以简化如下:

def list\u乘法(list\u输入,数字):
新列表=元组(int(x)*列表输入中x的编号[1:])
返回(列表\输入[0],)+新列表

表示“h”不是
int
。我认为是这样的,他们通过“链”循环,得到了“h”,但无法将其转换为
int
,因为它不是。这可能是错误的
list\u multiply()
,而不是
Treeview
。谢谢@acw1668。此代码正在运行…我在使用此代码时遇到问题。如果您对我的数据库类型有疑问,您可以访问