我的数组(子数组)的搜索功能似乎出现故障

2024-09-30 22:18:41 发布

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

好的,我有一个数据库程序。除了我的搜索功能,我现在实现的每一个都可以工作,它似乎打印出所有的子数组,而不是搜索到的子数组。我没能找出问题所在,所以我希望你们能帮我找到解决办法。谢谢你的帮助!你知道吗

我的代码:

import json
import time

datastore = json.load(open("file.json"))
menuon = 1


def add_user():
    userdata = input("How many users do you wish to input?")
    print("\n")

    if (userdata == 0):
        print("Thank you, have a nice day!")

    else:
        loop = int(userdata)
        whileloop = loop+loop

        while loop < whileloop:
            appendnumber = json.load(open("fileappend.json"))
            loop = loop + 1
            datastore.append([])
            datastore[appendnumber].append(input("Enter Name: "))
            datastore[appendnumber].append(input("Enter Email: "))
            datastore[appendnumber].append(input("Enter DOB: "))
            appendnumber = appendnumber + 1
            json.dump(appendnumber, open("fileappend.json", "w"))


def print_resource(array):
    for entry in datastore:
        print("Name:  "+entry[0])
        print("Email:  "+entry[1])
        print("DOB:  "+entry[2])
        print("\n")


def search_function(value):
  for eachperson in datastore:
      if value in eachperson:
          print_resource(eachperson)


while menuon == 1:        
    print("Hello There. What would you like to do?")
    print("")
    print("Option 1: Add Users")
    print("Option 2: Search Users")
    print("Option 3: Replace Users")
    print("Option 4: End the program")
    menuChoice = input()

    if menuChoice == '1':
        add_user()

    if menuChoice == '2':
        searchflag = input("Do you wish to search the user data? y/n")
        if(searchflag == 'y'):
            criteria = input("Enter Search Term: ")
            search_function(criteria)

    if menuChoice == '3':
        break

    if menuChoice == '4':
        print("Ending in 3...")
        time.sleep(1)
        print("2")
        time.sleep(1)
        print("1")
        json.dump(datastore, open("file.json", "w"))
        menuon=0       

你知道吗文件.json包含:

"[["Brandon Jones", "FluxDZ@hotmail.co.uk", "01/07/1999"],]"

你知道吗文件附加.json包含: 1个


Tags: inloopyoujsoninputifopenoption
1条回答
网友
1楼 · 发布于 2024-09-30 22:18:41

问题不在于你的搜索功能,而在于你的打印功能:

def print_resource(array):
    for entry in datastore:
        print("Name:  "+entry[0])
        print("Email:  "+entry[1])
        print("DOB:  "+entry[2])
        print("\n")

您向它传递一个参数array,但它完全忽略该参数,而是在整个数据存储中的每个条目上循环,将它们全部打印出来。你知道吗

试试这个:

def print_resource(entry):
    print("Name:  "+entry[0])
    print("Email:  "+entry[1])
    print("DOB:  "+entry[2])
    print("\n")

相关问题 更多 >