我在python 3.7上写了一些小脚本来接收实际的浏览器版本
在这里:
import json
def json_open():
file_json = open('/Users/user/PycharmProjects/Test/configuration.json')
return json.load(file_json)
def get_last_version(browser_name):
f = json_open()
res = (f['global']['link_to_latest_browser_version'])
last_version = repr(res.json()['latest']['client'][browser_name]['version'])
#print(last_version[1:-1])
return last_version[1:-1]
还存在json文件,但现在没有关系。
已收到:
AttributeError: 'str' object has no attribute 'json'.
在行
last_version = repr(res.json()['latest']['client'][browser_name]['version'])
请告诉我我的错误是什么?
答案 0 :(得分:1)
您的“ res”变量为字符串类型。 字符串没有名为json的属性。 因此res.json()无效。
答案 1 :(得分:1)
好的,问题出在这里:
last_version = repr(res.json()['latest']['client'][browser_name]['version'])
JSON对象基本上是一个字典。因此,当您执行json['key']
时,它将返回内容,而不是json对象。
此处res
是一个字符串,不是json对象,因此不具有.json()
属性。
修改:
如果您希望根据情况返回字符串:
res = json.loads(f['global']['link_to_latest_browser_version'])
last_version = res['latest']['client'][browser_name]['version']
return last_version
答案 2 :(得分:1)
如果您尝试将res
转换为json对象,请尝试使用json.loads(res)
而不是res.json()
答案 3 :(得分:1)
尝试一下:
import json
FILEJSON = '/Users/user/PycharmProjects/Test/configuration.json'
def get_last_version(browser_name):
with open(FILEJSON, 'r') as fson:
res = json.load(fson)
last_version = res['global']['link_to_latest_browser_version']\
['latest']['client'][browser_name]['version'][1:-1]
return last_version
我认为json_open
功能是不必要的。还应考虑到json.load()
方法的行为取决于type of file you are reading.