我正在尝试通过JSON数据来查找特定键的值。我的数据来自http请求,数据如下所示:
{'1': {'manufacturername': 'SVLJ',
'modelid': 'TCL014',
'name': 'Fling'},
'10': {'manufacturername': 'SONY',
'modelid': 'BLL4554',
'name': 'ACQ'}}
我当前的目标是循环遍历每个项目编号(1、10等),并获取light的值(“fling”、“acq”等)。我最近的尝试是:
import requests
RESOURCE_URL = 'xxx/xxx/'
def get_json(url):
raw_response = requests.get(url)
data = raw_response.json()
return data
def get_SMR():
url = "{}SMR/".format(RESOURCE_URL)
return get_json(url)
smr_json = get_SMR()
for SMR in smr_json:
print(SMR['name'])
当我试着运行这个时,我得到一个错误:
TypeError: string indices must be integers
我还尝试导入json库,并使用json.loads文件(生的)_回复.text);但是,它仍然被识别为一个字符串,而不是一个iterable json对象(可以被key引用)。任何和所有的洞察力将不胜感激。你知道吗
我认为问题出在JSON文件中。不允许单引号。你知道吗
我首先将单引号替换为双引号,这样:
{ "1": { "manufacturername": "SVLJ", "modelid": "TCL014", "name": "Fling" }, "10": { "manufacturername": "SONY", "modelid": "BLL4554", "name": "ACQ" } }
;您可能会得到一个字符串,因为它不是有效的JSON。JSON需要
"
作为字符串,而不是'
。你知道吗见json.org:
当您执行
for SMR in smr_json:
操作时,您正在对字典的键进行迭代。换句话说,SMR
是一个字符串,它不允许通过字符串进行索引:您打算对键和值进行迭代:
或者,只是价值观:
相关问题 更多 >
编程相关推荐