使用变量读取json吗?

时间:2018-09-21 20:04:06

标签: python json

我正试图让我的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的网址 我不确定是否无法通过这种方式执行我要执行的操作,或者是否必须使用某种特殊格式:

这是我的问题,由于我不了解术语,所以我真的不知道该如何正确表达:

当要求我的机器人从json读取内容时,是否有一种简单的方法可以使用此“随机”变量?

我宁愿使用这种格式,因为这是我理解并习惯的格式,但是如果不可能的话,我不介意尝试其他方法

如果您想知道json看起来如何:

{
"max": {"max":139},
"1": {stuff here},
"2": {stuff here},
"3": {stuff here},
"4": {stuff here},
"etc"...
}

2 个答案:

答案 0 :(得分:3)

问题在于random.randint返回一个整数,而您正在访问的字典具有字符串键。您可以通过在访问字典时将str包裹在随机变量周围来解决此问题:

url = data[str(random)]["url"]

答案 1 :(得分:1)

您的json文件具有字符串作为键。试试:

url = data[str(random)]["url"]