我正在尝试使用以下程序打印名称列表
def search():
with open('business_ten.json') as f:
data=f.read()
jsondata=json.loads(data)
for row in jsondata['rows']:
#print row['text']
a=str(row['name'])
#print a
return a
search()
如果我把return语句,它不打印,但如果我把print语句它工作 我希望return语句有效。我想要return语句而不是print语句
答案 0 :(得分:0)
这是由于缩进问题导致您的return
语句无效。
将for
循环放在search
def search():
with open('business_ten.json') as f:
data=f.read()
jsondata=json.loads(data)
for row in jsondata['rows']:
a=str(row['name'])
yield a
data = search()
print list(data)
或
print list(search())
答案 1 :(得分:0)
你不能从循环内部返回,因为该方法将在循环的第一部分之后完成。看起来您需要打印a,将a附加到数据列表,然后在循环结束后返回所述列表。
你的缩进也非常有趣。我不确定你是如何复制你的代码的,或者这实际上是你的代码的样子,但是我会想象前者,否则它将永远不会运行。您是否可以编辑问题以纠正问题?
答案 2 :(得分:0)
我想这就是你想要的,但你可以更好地解释它......
def search():
with open('business_ten.json') as f:
data=f.read()
jsondata=json.loads(data)
for row in jsondata['rows']:
a=str(row['name'])
yield a
print list(search())
答案 3 :(得分:0)
创建您之前打印的所有字符串的列表并返回该列表。
def search():
with open('business_ten.json') as f:
data=f.read()
jsondata=json.loads(data)
return_data = []
for row in jsondata['rows']:
#print row['text']
a=str(row['name'])
#print a
return_data.append(a)
return return_data
print(search())