Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-在CSV中查找关键字_Python_Csv - Fatal编程技术网

Python-在CSV中查找关键字

Python-在CSV中查找关键字,python,csv,Python,Csv,好的,基本上,我有一个项目,为一个电子设备创建一个故障排除程序。它会询问您拥有哪种设备,例如手机,然后询问品牌、型号等 然后我想让程序问“问题是什么”,这很好,但我想在一列中有一个CSV文件,其中有问题,在下一列中有解决方案 因此,从用户输入的例如“我的手机不收费”中,我希望它搜索CSV文件,例如“收费”或“不收费”,然后打印出解决方案 我该怎么做呢?我已经坐在这里思考了一段时间,但我不知道 如果你们对此有任何其他建议,请提供。所以你们有关键词、问题和解决方案 通常,一个问题可以,也将有多个解决

好的,基本上,我有一个项目,为一个电子设备创建一个故障排除程序。它会询问您拥有哪种设备,例如手机,然后询问品牌、型号等

然后我想让程序问“问题是什么”,这很好,但我想在一列中有一个CSV文件,其中有问题,在下一列中有解决方案

因此,从用户输入的例如“我的手机不收费”中,我希望它搜索CSV文件,例如“收费”或“不收费”,然后打印出解决方案

我该怎么做呢?我已经坐在这里思考了一段时间,但我不知道


如果你们对此有任何其他建议,请提供。

所以你们有关键词、问题和解决方案

通常,一个问题可以,也将有多个解决方案

因此,基本上,如果您使用的是csv,这意味着您将有一列“解决方案”,其中包含几次相同的解决方案。 这在维护方面不是很好(假设您在解决方案中犯了一个打字错误,您如何在任何地方更改它?)

将csv导入关系数据库(例如MySQL和使用MySQL Workbench)非常容易。 使用SQL可以使用强大的功能,比使用csv快得多,而且总体上可以让您在以后使用ORM在数据库中插入django之类的强大功能

Tables : 
    - word : id_word, word
    - problem : id_problem, problem
    - solution : id_solution, solution
    - problem_solution : id_problem, id_solution (a problem can have multiple solutions).
    - word_problem : id_word, id_problem (a word can be found in multiple problems).

Logic :
    ask user for problem.
    split problem on space (" ") to get words.
    for every word, ask your db for related problems.
    show your user distinct related problems (ordering by the most occuring problem)
    user selects a problem
    fetch solutions for the problem and show them.

csv库将帮助您做到这一点。这是链接

我喜欢使用听写器和听写器

import csv

input_d = list()
while(True):
  make = input('Enter make')
  # fill in the rest
  input_d.append(dict(make=make, #fill in the rest))
  # figure out how to break this loop
with open('path/to/save/csv/file', 'w') as fh:  
  headers = input_d.keys()
  writer = csv.DictWriter(fh, headers)
  writer.writeheader()
  writer.writerows(input_d)

您可以从学习如何读取和写入CSV文件开始…使用字典可能会容易得多CSV库将帮助您做到这一点。这是我的建议link@DilithiumMatrix我知道如何读取CSV文件,我只想知道如何搜索关键字。letsc,这可能是个好主意,是的,我不知道我怎么会不这么想出于好奇,为什么投反对票?我也想知道,你能再解释一下这个关系数据库的建议吗?由于不了解这一点,您给出的代码看起来很混乱,就像您能把它放在现实世界的例子中吗?不是downvoter,但可能是因为它没有回答所问的问题。这应该是一个类似于“我建议调查数据库”的评论。@Loïc,公平地说,如果OP正在努力解决这个问题,我认为关系数据库现在可能是一个过犹不及的桥梁,也许添加一两个示例和一些包含更多信息的链接可能会有所帮助。问题就是一个例子。无论OP认为解决方案是什么,这个答案都是对根本问题的最正确答案。