我是新来的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文件,您可以导入并调用它的更多信息有关导入看到这个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'])])