利用函数和数据从Python中的另一个类

问题描述 投票:-1回答:1

我是新来的Python,这听起来简单,但我有2个文件/类,task1.py和task2.py。我想访问task1.py功能和数据到task2.py。换言之,无论打印出来已由task1.py打印出来,我想采取输出和利用它,在这种情况下就是我与输出做的是将其导出为CSV文件。

这是我的task1.py的样子:

def matchCountry():
    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].lower() == 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].lower() != userName.lower():
                result = (v['Name'][0] + " : " + ", ".join(v['Country']))
                print result

这就是我的task2.py的样子:

def exportCSV():
    with open('output.csv', 'w') as csvfile:
        csvwriter = csv.writer(csvfile, f, lineterminator='\n')
        csvwriter.writerow(["Name", "Country"])

        for k, v in data.items():
            if any(x in data[id]['Country'] for x in v['Country']):
                if v['Name'][0].lower() != userName.lower():
                    csvwriter.writerow([v['Name'][0], ", ".join(v['Country'])])

参考我的JSON文件:

{  
   "user1":{  
      "Country":[  
         "China",
         "USA",
         "Nepal"
      ],
      "Name":[  
         "Lisbon"
      ]
   },
   "user2":{  
      "Country":[  
         "Sweden",
         "China",
         "USA"
      ],
      "Name":[  
         "Jade"
      ]
   },
   "user3":{  
      "Country":[  
         "India",
         "China",
         "USA"
      ],
      "Name":[  
         "John"
      ]
   }
}
python json python-2.7
1个回答
1
投票

第一件事,你是指在不工作,如其他函数的函数变量数据和用户名。

如果你想使用函数/类从另一个Python文件,您可以导入并调用它的更多信息有关导入看到这个thread见下文的例子:

task1.朋友

from task2 import exportCSV
userName = raw_input("Enter user's name: ")

def matchCountry():
    with open('listOfUsers.json') as f:
        data = json.load(f)
        return data


def getId(name):
    for userId, v in data.items():
        if v['Name'][0].lower() == name:
            return userId;
data = matchCountry()
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].lower() != userName.lower():
            result = (v['Name'][0] + " : " + ", ".join(v['Country']))
            print result

exportCSV(data, id, userName)

task2.朋友:

def exportCSV(data, id, userName):
    with open('output.csv', 'w') as csvfile:
        csvwriter = csv.writer(csvfile, f, lineterminator='\n')
        csvwriter.writerow(["Name", "Country"])

        for k, v in data.items():
            if any(x in data[id]['Country'] for x in v['Country']):
                if v['Name'][0].lower() != userName.lower():
                    csvwriter.writerow([v['Name'][0], ", ".join(v['Country'])])
© www.soinside.com 2019 - 2024. All rights reserved.