gspread:有没有办法将字典加载到sheet.update_cells()中?

我认为这里的代码非常草率:


industry = []

headquarters = []

specialties = []

totalEmployeeCount = []

growth6Mth = []

website = []


for i in cvs_data:

    j = ci_data[0]

    for j in ci_data:

        if i['companyName'] == j['name']:

            industry.append(Cell(row = cvs_data.index(i)+2, col = 6,

                             value = j['industry']))

            headquarters.append(Cell(row = cvs_data.index(i)+2, col = 8,

                             value = j['headquarters']))

            specialties.append(Cell(row = cvs_data.index(i)+2, col = 9,

                             value = j['specialties']))

            totalEmployeeCount.append(Cell(row = cvs_data.index(i)+2, col = 10,

                             value = j['totalEmployeeCount']))

            growth6Mth.append(Cell(row = cvs_data.index(i)+2, col = 11,

                             value = j['growth6Mth']))

            website.append(Cell(row = cvs_data.index(i)+2, col = 14,

                             value = j['website']))

            

cvs.update_cells(industry)

cvs.update_cells(headquarters)

cvs.update_cells(specialties)

cvs.update_cells(totalEmployeeCount)

cvs.update_cells(growth6Mth)

cvs.update_cells(website)

其中 cvs_data 是用于其索引的字典列表。实际的 gspread 工作表 (cvs) 将使用 ci_data(另一个字典列表)中的值进行更新。


我猜我的搜索也可能会更好。


是否可以将所有这些值(即行业、总部等)附加到一个字典中而不是单独的列表中,然后对该字典调用 update_cells() ?


SMILET
浏览 138回答 1
1回答

HUH函数

如果您的目标是拥有一个update_cells(),那么您应该能够使用:cvs.update_cells(industry + headquarters + specialties + ...)您的 Cell 对象看起来都具有行和列数据,因此它们不需要位于单独的列表中。我认为我没有看到任何从字典到谷歌表格的内容,但另一种方法(其中键是行业、总部等,而值是单元格列表)是:all_data = {'industry': [], 'headquarters': [], ...}# add cells to all_datadata = []for list_of_cells in all_data.values():    data.extend(list_of_cells)cvs.update_cells(data)对于您的搜索,ci_data从字典列表重新组织为一个字典可能会有所帮助。您可以将键作为名称,而将值作为字典:ci_data_dict = dict()for item in ci_data:    name = item['name']    ci_data_dict[name] = item那么你的代码中就不会嵌套 for 循环:for i in cvs_data:    j = ci_data_dict[i['company_name']]    industry.append(Cell(row = cvs_data.index(i) + 2, col = 6, value = j['industry']))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python