मैं एक प्रोग्राम बनाने की कोशिश कर रहा हूं जो जीयूआई के माध्यम से एक JSON स्ट्रिंग में पढ़ेगा और फिर अतिरिक्त कार्यों को करने के लिए इसका उपयोग करेगा, इस मामले में गणितीय समीकरण को तोड़ना होगा। फिलहाल मुझे त्रुटि मिल रही है:एक JSON स्ट्रिंग पढ़ना | TypeError: स्ट्रिंग इंडेक्स पूर्णांक होना चाहिए
"TypeError: string indices must be integers"
और मुझे नहीं पता कि क्यों।
JSON मैं में पढ़ने के लिए कोशिश कर रहा हूँ इस प्रकार है:
{
"rightArgument":{
"cell":"C18",
"value":9.5,
"type":"cell"
},
"leftArgument":{
"rightArgument":{
"cell":"C3",
"value":135,
"type":"cell"
},
"leftArgument":{
"rightArgument":{
"cell":"C4",
"value":125,
"type":"cell"
},
"leftArgument":{
"cell":"C5",
"value":106,
"type":"cell"
},
"type":"operation",
"operator":"*"
},
"type":"operation",
"operator":"+"
},
"type":"operation",
"operator":"+"
}
import json
import tkinter
from tkinter import *
data = ""
list = []
def readText():
mtext=""
mtext = strJson.get()
mlabel2 = Label(myGui,text=mtext).place(x=180,y=200)
data = mtext
def mhello():
_getCurrentOperator(data)
def _getCurrentOperator(data):
if data["type"] == "operation":
_getCurrentOperator(data["rightArgument"])
_getCurrentOperator(data["leftArgument"])
list.append(data["operator"])
elif data["type"] == "group":
_getCurrentOperator(data["argument"])
elif data["type"] == "function":
list.append(data["name"]) # TODO do something with arguments
for i in range(len(data["arguments"])):
_getCurrentOperator(data["arguments"][i])
else:
if (data["value"]) == '':
list.append(data["cell"])
else:
list.append(data["value"])
print(list)
myGui = Tk()
strJson = StringVar()
myGui.title("Simple Gui")
myGui.geometry("400x300")
label = Label(text = 'Welcome!').place(x=170,y=40)
btnStart = Button(myGui,text='Start',command=mhello).place(x=210,y=260)
btnRead = Button(myGui,text='Read text',command=readText).place(x=210,y=200)
txtEntry = Entry(myGui, textvariable=strJson).place(x=150,y=160)
btnOptions = Button(myGui, text = "Options").place(x=150,y=260)
myGui.mainloop()
क्या आप पूरे स्टैकट्रैक दे सकते हैं? –
हाय, उत्तर के लिए धन्यवाद :) प्रोग्राम चलाने के दौरान, कॉल स्टैक विंडो खाली बनी हुई है –