猿问

AttributeError: 'str' 对象没有属性 'json'

我在 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'])

请告诉我我的错误是什么?


元芳怎么了
浏览 427回答 4
4回答

UYOU

试试这个:import jsonFILEJSON = '/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()方法的行为取决于您正在阅读的文件类型。

潇湘沐

如果您尝试转换res为 json 对象,请尝试json.loads(res)代替res.json()

ABOUTYOU

好了,问题来了:    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

慕沐林林

您的“res”变量是字符串类型。字符串没有名为 json 的属性。所以 res.json() 是无效的。
随时随地看视频慕课网APP

相关分类

Python
我要回答