猿问

根据从 Google 工作表复制的字段创建字典

我将包含人员的数据库硬编码到我的一个文件中,因为我不知道是否有更好的方法来做到这一点。


我的字典是这样的:


autocompleteList2 = {

' ': [' ', ' '],   #so my first input value will be blank 

'James': ['James@gmail.com', '555-555-5555'],

我从 Google 表格中复制了几列包含类似数据的列。有大量的数据。如何快速复制/粘贴此数据并将其加入我当前的字典?换句话说,我想复制/粘贴包含所有名字的第 1 列、包含电子邮件地址等的第 2 列,并使其最终如上所示。


我的问题的第二部分:这是最好的方法吗?让我的程序在 Google 表格中查询新数据会更好吗?我担心它只会导致必须始终连接和验证的问题。


繁花如伊
浏览 163回答 2
2回答

绝地无双

是的,您可以使用 google 的Sheets API来做您想做的事。但是,如果您担心必须始终进行连接和身份验证,并且只想要快速而肮脏的东西,只需将谷歌表导出为 csv,然后执行以下操作:import csvautocompletelist2 = {' ': [' ', ' ']}with open('data.csv', mode='r') as csv_file:    csv_reader = csv.reader(csv_file)    for row in csv_reader:        autocompletelist2[row[0]] = [row[1], row[2]]结果autocompletelist2将是您想要的字典输出:{    ' ': [' ', ' '],    'James': ['James@gmail.com', '555-555-5555'],     'Mike': ['Mike@gmail.com', '888-888-8888'] #...and so on...}

开心每一天1111

如果(正如您在评论中提到的)在更新时定期下载 Google Sheet 是合理的,最简单的解决方案可能是将其下载为 csv(逗号分隔值)文件并将其读入这样的字典:autocompleteList2 = {}with open('googlesheet.csv') as infile:    for line in infile:        items = line.split(',')        autocomleteList2[items[0]] = items[1:]缺点是每次要使用字典时都必须读取 csv 文件。另一种方法是创建字典的泡菜:import pickleautocompleteList2 = {}with open('googlesheet.csv') as infile:    for line in infile:        items = line.split(',')        autocomleteList2[items[0]] = items[1:]with open('autocompleteList2.pkl', 'wb+') as outfile:    pickle.dump(autocompleteList2, outfile)这将创建一个名为“autocompleteList2.pkl”的文件,然后可以通过执行以下操作随时加载该文件:import picklewith open('autocompleteList2.pkl', 'wb+') as infile:    autocompleteList2 = pickle.load(infile).pkl不过,在通过电子邮件发送文件时要小心;他们以不安全着称。发送 csv 文件和代码以创建泡菜文件,并让每个用户在自己的机器上创建泡菜。
随时随地看视频慕课网APP

相关分类

Python
我要回答