![](/img/trans.png)
[英]Searching through index number in a .txt file (JSON format) in Python code
[英]Searching in a .txt file (JSON format) for a particular string and then printing a specific key
我必須從用戶那里獲取字符串形式的輸入,然后必須在JSON格式的.txt文件中進行搜索。 如果文本匹配,則必須執行X,否則必須執行Y。例如,如果用戶輸入“ mac”,則我的代碼應顯示包含搜索詞“ mac”的術語的完整名稱。
我的JSON文件當前包含Big Mac,當我搜索“ mac”時,它什么也沒有顯示,而必須顯示我(0 Big Mac)。 0是索引號,也是必需的。
if option == 's':
if 'name' in open('data.txt').read():
sea = input ("Type a menu item name to search for: ")
with open ('data.txt', 'r') as data_file:
data = json.load(data_file)
for line in data:
if sea in line:
print (data[index]['name'])
else:
print ('No such item exist')
else:
print ("The list is empty")
main()
我已經應用了許多解決方案,但是都沒有用。
既然您知道要在針對'name'鍵存儲的值中查找字符串,則只需更改即可:
if sea in line
至:
if sea in line['name']
(或者if sea in line.get('name')
有if sea in line.get('name')
則可能會導致您的詞典之一沒有“名稱”鍵的風險)。
但是,您嘗試使用index
而未在任何地方進行設置。 如果您需要跟蹤列表中的位置,最好使用enumerate :
for index, line in enumerate(data):
if sea.lower() in line['name'].lower():
print ((index, line['name']))
如果要使“ m”與“ Big Mac”匹配,則需要進行不區分大小寫的匹配(“ m”與“ M”不同)。 請參閱上面的編輯,在進行比較之前,它將所有字符串轉換為小寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.