我正在尝试让我的 Python 机器人使用我已经定义的变量(随机)来读取 JSON 文件并向我发送与给定的变量对应的 URL。
with open('data.json', 'r') as json_data:
data = json.load(json_data)
max = data["max"]["max"]
random = random.randint(1, max)
url = data[random]["url"]
但是当我运行机器人时,它会出现所有“KeyError”,并在通过将 url[random]["url"]
替换为 url["5"]["url "]
它正确地向我发送了对应于 5 的 url
我不确定是否无法以这种方式做我想做的事情,或者我是否必须使用某种特殊格式:
这是我的问题,我真的不知道如何正确地表达它,因为我不知道术语:
当要求我的机器人从 json 中读取时,是否有一种简单的方法来使用这个“随机”变量?
我宁愿使用这种格式,因为它是我理解和习惯的东西,但如果不可能,我不介意尝试其他东西
如果您想知道 json 的样子,它有点像:
{
"max": {"max":139},
"1": {stuff here},
"2": {stuff here},
"3": {stuff here},
"4": {stuff here},
"etc"...
}
最佳答案
问题是 random.randint
返回一个整数,而您正在访问的字典有字符串键。您可以通过在访问字典时将 str
包裹在随机变量周围来解决此问题:
url = data[str(random)]["url"]
关于python - 使用变量从 json 中读取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52450444/