我正在尝试使用 Python 按其值而不是其变量来搜索 json。
基本上:我想在 .a json 文件中搜索字符串/第二个值并返回第一个值
我正在制作一个速记游戏,我试图这样做,以便我可以按单词搜索笔划。
例如:
“TKPWRAOEUPBD”:“grind”
我搜索“grind”,它返回“TKPWRAOEUPBD”。或者我搜索另一个单词,比如说“你好”,它会返回正确的值,对于我的个人字典来说,这将是“H-L”。
我已经尝试过这个:
import json
x = open("main.json")
y = x.read()
z = json.loads(y)
print(z["VALUE HERE"])
但它只允许我做原始的笔画,而不是任何文字。
走在正确的轨道上!只是需要反转如何访问
json
数据。目前,正在使用一个键来获取其值。需要做的是遍历所有键值对并检查的查询是否与当前值匹配。如果匹配,则返回该键。
以下是如何执行此操作的方法:
import json
def find_key_by_value(data, target_value):
"""在 JSON 数据中搜索某个值并返回其键。
Args:
data: Python 字典(从 JSON 字符串加载)。
target_value: 要搜索的值。
Returns:
与该值关联的键,如果找到该值。如果未找到该值,则返回 None。
"""
for key, value in data.items():
if value == target_value:
return key
return None
# 从文件加载 JSON 数据
with open("main.json", 'r') as f:
z = json.load(f)
# 搜索单词“grind”
search_word = "grind"
found_key = find_key_by_value(z, search_word)
if found_key:
print(f"与 '{search_word}' 对应的键是:{found_key}")
else:
print(f"在 JSON 数据中找不到 '{search_word}'。")
这段代码首先定义了一个名为
find_key_by_value
的函数,该函数接受 JSON 数据和要搜索的目标值。它遍历数据中的所有键值对,如果找到匹配的值,则返回相应的键。
然后,该代码打开的 JSON 文件,将其加载到名为
z
的字典中,并定义要搜索的
search_word
。然后,它调用
find_key_by_value
函数,并将结果存储在
found_key
中。最后,它会打印出找到的键或一条消息,指出该值是否在数据中。
此代码假设的 JSON 文件的结构是单词作为值,速记符号作为键。
标签:python,json From: 78776519