如何在Python中给出多个条件时检索特定的csv列数据?

How to retrieve specific csv column data when multiple conditions are given in Python?

就像在 MySQL 查询中我们使用 WHERE 子句检索具有条件的列一样,我们如何在 Python 中做同样的事情? CSV 文件也是如此吗?

我的 CSV 文件包含具有名称、地点和颜色属性的数据

  1. Ruby,纽约,格林
  2. Casper,首尔,蓝色
  3. 卡罗琳,纽约,格林

现在用户可以选择提供城市和颜色名称进行搜索。如果用户输入:City = NewYork and Color= Green,它应该显示

  1. Ruby
  2. 卡罗琳。

我应该怎么做?我写了一个示例代码,但输出错误。

import csv

class Test:
 
     def Display(Name,Place,Color):
        f = open('sample.csv')
        csv_f = csv.reader(f)
          for row in csv_f:
            if(row[1]==("NewYork") and row[2] ==("Green")):
            pass
          print(Name)  
  
Name,Place,Color = input("Enter Details: ").split()
Test.Display(Name,Place,Color)

考虑以下测试对象:

import csv

class Test:
    def display(self, name, place, color):
        with open('sample.csv') as csv_file:
            csv_reader = csv.reader(csv_file, delimiter=',')
            for row in csv_reader:
                if(row[1]==place and row[2] == color):
                    print(row[0])  

test = Test()
test.display("Name","NewYork","Green")

我们有一个 Class 带有用于显示输出的成员函数。 您可以先打开 csv 文件并使用 csv_file 引用在范围内创建 reader。然后在每一行的列中搜索传递给函数的给定字符串。

看起来你在尝试诊断这个问题时遇到了一些麻烦,并且在其中留下了让你感到困惑的测试代码。