首页 > 解决方案 > 从 Python 中的打印输出中删除用户输入

问题描述

我有一个程序要求用户输入一个名称(例如里斯本),并且属于该名称的任何其他用户与将打印出的用户输入(例如里斯本)具有相同的国家/地区(例如 Jade、John)。这是我的 JSON 文件:

{  
   "user1":{  
      "Country":[  
         "China",
         "USA",
         "Nepal"
      ],
      "Name":[  
         "Lisbon"
      ]
   },
   "user2":{  
      "Country":[  
         "Sweden",
         "China",
         "USA"
      ],
      "Name":[  
         "Jade"
      ]
   },
   "user3":{  
      "Country":[  
         "India",
         "China",
         "USA"
      ],
      "Name":[  
         "John"
      ]
   }
}

例如,如果用户输入的里斯本,这将是输出:

Lisbon
Jade
John

我想从输出中删除用户输入,因此预期的结果是:

Jade
John

这是我的代码的样子:

def Country():
    userName = raw_input("Enter user's name: ")
    with open('listOfUsers.json') as f:
        data = json.load(f)

    def getId(name):
        for userId, v in data.items():
            if v['Name'][0] == name:
                return userId;

    id = getId(userName)
    for k, v in data.items():
    if any(x in data[id]['Country'] for x in v['Country']):
        print (v['Name'][0])

标签: pythonjsonpython-2.7

解决方案


The following worked for me

def Country():
    userName = raw_input("Enter user's name: ")
    with open('listOfUsers.json') as f:
        data = json.load(f)

    def getId(name):
        for userId, v in data.items():
            if v['Name'][0] == name:
                return userId;

    id = getId(userName)
    for k, v in data.items():
        if any(x in data[id]['Country'] for x in v['Country']):
            if v['Name'][0] != userName:
                print (v['Name'][0])

推荐阅读