Python 3.x &引用;“如何修复”;显示从一个Def到另一个Def的返回值&引用;
我正在创建一个程序,从文本文件中提取句子,并从JSON文件中匹配城市名称。匹配不起作用,我无法传递返回值 我试着先做一些简单的事情,不创建类,然后用静态城市进行检查Python 3.x &引用;“如何修复”;显示从一个Def到另一个Def的返回值&引用;,python-3.x,Python 3.x,我正在创建一个程序,从文本文件中提取句子,并从JSON文件中匹配城市名称。匹配不起作用,我无法传递返回值 我试着先做一些简单的事情,不创建类,然后用静态城市进行检查 import json with open("store.txt", "r+") as g, open("city.json") as c: dat1 = json.load(c) dat = g.readlines() # print(dat) # def hel(): # for items1 i
import json
with open("store.txt", "r+") as g, open("city.json") as c:
dat1 = json.load(c)
dat = g.readlines()
# print(dat)
# def hel():
# for items1 in dat1:
# gat = items1.get("name")
# print(gat)
class One:
def __init__(self):
self.dat = dat
self.dat1 = dat1
def leh(self):
for items in self.dat:
# print(items)
# for hy in items:
return items
def main(self):
returned = test_obj.leh()
print(returned)
# for items1 in self.dat1:
# gat = items1.get("name")
# if gat in returned:
# print("Got it")
if __name__ == '__main__':
test_obj = One()
test_obj.main()
我希望传递的值打印城市名称,并将其与文本文件中存储的句子匹配
store.txt中的行:
“德里是个不错的城市。”
“伦敦很好。”
city.json中的行:
[
{
"id": 1,
"name": "Surat",
"country": "IN"
},
{
"id": 1259229,
"name": "London",
"country": "GB"
},
{
"id": 1273294,
"name": "Delhi",
"country": "IN"
}
]
首先,您需要了解json是如何工作的。因为我们正在读取一个文件,它被读取为一个字符串,所以我们 应该使用接受字符串的
json.loads
。另一个问题是json.loads
需要一个完整的json字符串,
但是由于我们的json文件被分成了几行,所以我们需要找到一种方法将它们全部放在一个字符串中。
一个选项是file.read().strip()
,它读取整个文件,然后删除行分隔符,如\n
。
另一个选项是“”.join(file.readlines())
,它将文件拆分成多行,然后以一个简单的方式连接它们
一串然后,在解析json之后,我们只需要逐行读取文本文件并迭代它们和
json中的值。以防文本文件中的一个城市像LoNdOn
那样写,我正在使用.lower()
转换它
到伦敦
import json
with open("city.json") as json_file:
parsed = json.loads(json_file.read().strip())
with open("store.txt") as text_file:
sentences = text_file.readlines()
for element in parsed:
for sentence in sentences:
if element['name'].lower() in sentence.lower():
print("{} was found!".format(element))
请在每个文件中写几行,以使您的问题更容易理解。您的
leh
函数没有解析整个文件。它在读了第一行之后返回。我需要解析整个文件数据。但是,不清楚你在问什么。。您所指的传递值是什么?您是要打印store.txt
中的句子还是json文件中的值?我正试图从json中获取所有“名称”,并在文本文件中存储的句子中搜索它们。如果匹配,则执行一些操作。谢谢兄弟。用不同的方法解决了这个问题。但是你的代码比我的好得多,所以我要用这个。我希望这个代码在while循环中。因此,当它完成检查后,它应该再次读取文本文件。如果更改是在文件中完成的,我很高兴我提供了帮助:)您可以帮助循环和连续读取文件中的文本吗。我这边有一个错误。它实际上只不过是一个,而True:
在读取文本文件上面。我建议你在写任何东西之前先学习python。