为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁花如伊 2021-11-02 16:09:18
我将包含人员的数据库硬编码到我的一个文件中,因为我不知道是否有更好的方法来做到这一点。我的字典是这样的:autocompleteList2 = {' ': [' ', ' '],   #so my first input value will be blank 'James': ['James@gmail.com', '555-555-5555'],我从 Google 表格中复制了几列包含类似数据的列。有大量的数据。如何快速复制/粘贴此数据并将其加入我当前的字典?换句话说,我想复制/粘贴包含所有名字的第 1 列、包含电子邮件地址等的第 2 列,并使其最终如上所示。我的问题的第二部分:这是最好的方法吗?让我的程序在 Google 表格中查询新数据会更好吗?我担心它只会导致必须始终连接和验证的问题。
查看完整描述

2 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

是的,您可以使用 google 的Sheets API来做您想做的事。但是,如果您担心必须始终进行连接和身份验证,并且只想要快速而肮脏的东西,只需将谷歌表导出为 csv,然后执行以下操作:


import csv


autocompletelist2 = {' ': [' ', ' ']}

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...

}


查看完整回答
反对 回复 2021-11-02
?
开心每一天1111

TA贡献1836条经验 获得超13个赞

如果(正如您在评论中提到的)在更新时定期下载 Google Sheet 是合理的,最简单的解决方案可能是将其下载为 csv(逗号分隔值)文件并将其读入这样的字典:


autocompleteList2 = {}

with open('googlesheet.csv') as infile:

    for line in infile:

        items = line.split(',')

        autocomleteList2[items[0]] = items[1:]

缺点是每次要使用字典时都必须读取 csv 文件。另一种方法是创建字典的泡菜:


import pickle


autocompleteList2 = {}

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 pickle


with open('autocompleteList2.pkl', 'wb+') as infile:

    autocompleteList2 = pickle.load(infile)

.pkl不过,在通过电子邮件发送文件时要小心;他们以不安全着称。发送 csv 文件和代码以创建泡菜文件,并让每个用户在自己的机器上创建泡菜。


查看完整回答
反对 回复 2021-11-02
  • 2 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信