从数据选项卡获取数据的Python函数命令是什么

2024-06-16 10:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python还不熟悉。我目前正在开发一个应用程序,根据用户的输入从数据表中获取数据。到目前为止,我似乎在任何地方都找不到正确的命令集。有人有小费吗?你知道吗

从更专业的角度来说,这个想法是这样的-用户输入数据,用户提交,查询,获取和检索,打印结果。。。有什么想法吗?你知道吗


Tags: 数据用户应用程序专业地方数据表角度命令集
2条回答

如果您使用的是XLSX文件,那么这里发布的答案(openpyxl find cell or row by value)可以根据单元格中的特定值查找行。你知道吗

如果它是一个CSV文件,您可能需要读取它并创建一个字典(如果有一列唯一键),否则每次输入搜索项时都要遍历每一行。你知道吗

下面是一个解决方案,应该给你一些想法。注意我使用StringIO只是为了示例,这样我就不必使用文件,这样示例就可以开箱即用了。您可以修改代码以从Excel文件、数据框、数据库或任何其他类型的存储中读取。那是你的选择。你知道吗

import csv
import StringIO

data = """date,obs1,obs2
2017-01-01,23.2,30.2
2017-02-01,14.9,13.3
"""

buffer = StringIO.StringIO()
buffer.write(data)
buffer.seek(0)


def select_action():
    menu = """Would you like to: (select a number)
1) See all data?
2) See data for a specific date?
3) Exit
 >"""
    action = raw_input(menu)
    while action.strip() not in ['1', '2', '3']:
        print "ERROR: Invalid action"
        action = raw_input(menu)

def do_action(action):
    if action == '1':
        reader = csv.reader(buffer)
        for line in reader:
            print "\t".join(field for field in line)
    elif action == '2':
        reader = csv.DictReader(buffer)
        date = raw_input("Select date: ").strip()
        for line in reader:
            if date == line['date']:
                output = ''
                for k, v in line.items():
                    output += ("%s: %s " % (k, v))
                print output

    # You could write a case for action 3, but it isn't necessary
    # the way I've written the code.    
    print "Goodbye"

def run():
    action = select_action()
    do_action(action)

相关问题 更多 >