因此,我一直在使用json进行abit工作,并从根本上提高了对json的认识
我想做的是,我把所有这些可用的数字保存在一个列表上,或者你可能想到的任何东西上
Json:
{
"threads": [
{
"seoTitle": "trucks",
"other_crap": "it's a fox!"
},
{
"seoTitle": "rockets",
"other_crap": "i'm rocket man"
},
{
"seoTitle": "helicopter",
"other_crap": "for 007",
"skus": [
{
"Number": "7",
"available": true
},
{
"Number": "7.5",
"available": true
},
{
"Number": "8",
"available": false
},
{
"Number": "8.5",
"available": true
},
{
"Number": "9",
"available": true
},
{
"Number": "9.5",
"available": false
},
{
"Number": "10",
"available": true
},
{
"Number": "10.5",
"available": false
},
{
"Number": "11",
"available": true
},
{
"Number": "11.5",
"available": false
},
{
"Number": "12",
"available": true
},
{
"Number": "12.5",
"available": false
},
{
"Number": "13",
"available": true
}
],
"restricted": false,
"subtitle": "Stackoverflow"
}
]
}
正如您从Json文件中看到的,这里有SKU,下面有不同的编号和可用编号,我想做的是根据是否可用来打印所有编号,意思是如果可用,则打印出来或保存到列表中,然后在有可用时打印出来搜索所有,如果不可用,则直接跳到下一个。-这就是我的目标——问题是,我不知道我应该通过json文件做什么,我如何才能使它成为可能,以便它知道根据可用将什么保存到列表中
1)您的预期输出是什么,
我预期的输出可能如下所示:
helicopter
for 007
7
7.5
8.5
9
10
11
12
13
2)到目前为止您已经尝试过的,
现在我只打印出了seoTitle和其他废话
print(threads['seoTitle'])
print(threads['other_crap'])
3)为什么您尝试的方法无效
我试着做一个for循环,但我完全失败了
for element in threads['skus']:
if element not 'available'
基本上失败了:/
我正在使用的代码:
old_list = []
while True:
try:
resp = requests.get(url)
new_list = resp.json()['threads']
for item in new_list:
if item['seoTitle']not in old_list:
try:
print(item['seoTitle'])
print(item['other_crap'])
itemskus = item.get('skus', {})
if itemskus:
for element in item['skus']:
print(element)
else:
print('Item skus could not be found')
old_list.append(['seoTitle'])
except Exception as e:
print(e)
print("ERROR")
time.sleep(5)
continue
else:
randomtime = random.randint(4, 60)
time.sleep(randomtime)
except Exception as e:
continue
现在,这是我的输出:
helicopter
for 007
{"Number": "7", "available": true }
{"Number": "7.5", "available": true }
{"Number": "8", "available": false }
{"Number": "8.5","available": true }
{"Number": "9", "available": true}
{"Number": "9.5", "available": false}
{"Number": "10", "available": true}
{"Number": "10.5", "available": false }
{"Number": "11", "available": true}
{"Number": "11.5","available": false }
{"Number": "12","available": true }
{"Number": "12.5", "available": false}
{"Number": "13", "available": true }
首先,需要将
json
导入pythondict
。假设您的文件名为my_sample.json
,那么您就可以这样做了现在,
sample
是一个包含json
数据的dict。您希望访问线程列表中第三个线程的skus
,前提是该线程可用。您可以通过创建以下列表来实现这一点然后打印你需要的
输出
编辑
如果不确定
skus
信息始终位于第三个线程上,则可以用以下内容替换available_skus
相关问题 更多 >
编程相关推荐