python - 使用变量从 json 中读取?

标签 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 的 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/

相关文章:

javascript - 在 AngularJS 中处理复杂的 JSON

Python 过滤器() 函数

python - 将Perl Regex语句转换为Python Regex

python - 即使在添加 ETag header 后也没有收到 304 响应

JSON 3 字母文件扩展名约定

django - 在 Django 测试客户端中访问 raw_post_data

python - 二维数组中 1 的岛的最大面积

python - 如何正确弃用 Python 中的自定义异常?

iphone - Objective-C 的 JSON 解析器比较(JSON 框架、YAJL、TouchJSON 等)

java - 如何让 jackson 使用一种方法将类序列化为 JSON?