Python (gspread):.get_all_记录返回无序字典

Python (gspread):.get_all_记录返回无序字典,python,gspread,Python,Gspread,我正在通过python访问python文件。 google表单如下所示: 但当我通过以下方式访问它时: self.probe=[] self.scope = ['https://spreadsheets.google.com/feeds'] self.creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', self.scope) self.client = gs

我正在通过python访问python文件。 google表单如下所示:

但当我通过以下方式访问它时:

    self.probe=[]
    self.scope = ['https://spreadsheets.google.com/feeds']
    self.creds = ServiceAccountCredentials.from_json_keyfile_name('client_secret.json', self.scope)
    self.client = gspread.authorize(self.creds)
    self.sheet = self.client.open('Beziehende').sheet1
    self.probe = self.sheet.get_all_records()
    print(self.probe)
结果是 我可以按照谷歌表格中的顺序得到结果吗? 谢谢你的帮助

编辑对不起,这里有更多信息。我的程序有两个功能: 1.)它可以检查数据库中是否已经存在名称/地址等。如果该姓名在数据库中,它将打印有关此人的所有信息。 2.)它允许我将人们的信息添加到数据库中

问题:我正在将整个数据库加载到列表中,然后将其全部写回。但是当写回它时,顺序会变得混乱,因为get_all_记录以随机顺序存储它。(这是我自己写的第一个程序,所以请原谅错误的编码)

我想知道是否有可能把数据整理好。但如果不是这样,我只需要找到一种方法,在线写最新的条目(我想这可能更有效…)


Python字典是无序的。集合中有很多,但是如果不深入了解为什么需要对该词典进行排序,就很难说最好的做法应该是什么…

Python词典是无序的。收藏中有很多,但是如果不深入了解为什么需要订购这本词典,很难说最好的做法是什么…

我不熟悉gspread,它似乎是Google Sheets API的第三方客户端,但看起来您应该使用而不是
get\u all\u records
。这将为您提供列表列表,而不是目录列表。

我不熟悉gspread,它似乎是Google Sheets API的第三方客户端,但看起来您应该使用而不是
获取所有记录。这将为您提供一个列表列表,而不是一个dict列表。

您的响应是默认情况下Python中未排序的词典列表。如何解决这一问题取决于最终的解决方案,您的响应是默认情况下Python中未排序的字典列表。如何解决这个问题取决于你想要的最终解决方案。谢谢,我会看一看。我决定使用字典,因为它们看起来很实用。但我错了…谢谢你,我会看看的。我决定使用字典,因为它们看起来很实用。但我错了。。。
    def create_window(self):

    self.t = Toplevel(self)
    self.t.geometry("250x150")

    Message(self.t, text="Name", width=100, anchor=W).grid(row=1, column=1)
    self.name_entry = Entry(self.t)
    self.name_entry.grid(row=1, column=2)
    Message(self.t, text="Adresse", width=100, anchor=W).grid(row=2, column=1)
    self.adr_entry = Entry(self.t)
    self.adr_entry.grid(row=2, column=2)
    Message(self.t, text="Organisation", width=100, anchor=W).grid(row=3, column=1)
    self.org_entry = Entry(self.t)
    self.org_entry.grid(row=3, column=2)
    Message(self.t, text="Datum", width=100, anchor=W).grid(row=4, column=1)
    self.date_entry = Entry(self.t)
    self.date_entry.grid(row=4, column=2)
    self.t.button = Button(self.t, text="Speichern", command=self.verify).grid(row=5, column=2)


    #name


    #window = Toplevel(self.insert_window)
def verify(self):
    self.ver = Toplevel(self)
    self.ver.geometry("300x150")
    self.ver.grid_columnconfigure(1, minsize=100)
    Message(self.ver, text=self.name_entry.get(), width=100).grid(row=1, column=1)
    Message(self.ver, text=self.adr_entry.get(), width=100).grid(row=2, column=1)
    Message(self.ver, text=self.org_entry.get(), width=100).grid(row=3, column=1)
    Message(self.ver, text=self.date_entry.get(), width=100).grid(row=4, column=1)
    confirm_button=Button(self.ver, text='Bestätigen', command=self.data_insert).grid(row=4, column=1)
    cancle_button=Button(self.ver, text='Abbrechen', command=self.ver.destroy).grid(row=4, column=2)



def data_insert(self):
    new_dict = collections.OrderedDict()
    new_dict['name'] = self.name_entry.get()
    new_dict['adresse'] = self.adr_entry.get()
    new_dict['organisation'] = self.org_entry.get()
    new_dict['datum'] = self.date_entry.get()
    print(new_dict)
    self.probe.append(new_dict)
    #self.sheet.update_acell('A4',new_dict['name'])
    self.update_gsheet()
    self.ver.destroy()
    self.t.destroy()

def update_gsheet(self):
    i = 2
    for dic_object in self.probe:
        j = 1
        for category in dic_object:
            self.sheet.update_cell(i,j,dic_object[category])
            j += 1
        i += 1

def search(self):
    print(self.probe)
    self.result = []
    self.var = self.entry.get()            #starting index better
    self.search_algo()
    self.outputtext.delete('1.0', END)
    for dict in self.result:
        print(dict['Name'], dict['Adresse'], dict['Organisation'])
        self.outputtext.insert(END, dict['Name'] + '\n')
        self.outputtext.insert(END, dict['Adresse']+ '\n')
        self.outputtext.insert(END, dict['Organisation']+ '\n')
        self.outputtext.insert(END, 'Erhalten am '+dict['Datum']+'\n'+'\n')
    if not self.result:
        self.outputtext.insert(END, 'Name not found')
        return FALSE
    return TRUE



def search_algo(self):

    category = self.v.get()
    print(category)
    for dict_object in self.probe:
        if dict_object[category] == self.var:
            self.result.append(dict_object)