如何保存" for循环" json输出到变量而不改变其格式?

时间:2017-09-25 09:09:44

标签: python json python-2.7 python-3.x for-loop

我试图从网站中删除一些数据并且结果是json格式,但是我还必须对该json数据进行一些操作,所以如果我将for循环的json格式输出保存到列表中那么格式将会改变我将无法执行某些操作,有没有办法存储输出而不改变格式?

import requests as tt
from bs4 import BeautifulSoup
import json

get_url=tt.get("https://in.pinterest.com/search/pins/?rs=ac&len=2&q=batman%20motivation&eq=batman%20moti&etslf=5839&term_meta[]=batman%7Cautocomplete%7Cundefined&term_meta[]=motivation%7Cautocomplete%7Cundefined")
soup=BeautifulSoup(get_url.text,"html.parser")
er=[]
select_css=soup.select("script#jsInit1")[0]
for i in select_css:
    er.append(json.loads(i))

1 个答案:

答案 0 :(得分:0)

好的,所以我想将输出保存在任何变量中,然后我将select_css传递给一个函数而不是追加i返回数据然后给该函数一个引用(闭包)并使用返回的输出进行一些操作。

import requests as tt
from bs4 import BeautifulSoup
import json

get_url=tt.get("https://in.pinterest.com/search/pins/?rs=ac&len=2&q=batman%20motivation&eq=batman%20moti&etslf=5839&term_meta[]=batman%7Cautocomplete%7Cundefined&term_meta[]=motivation%7Cautocomplete%7Cundefined")
soup=BeautifulSoup(get_url.text,"html.parser")
er=[]
select_css=soup.select("script#jsInit1")[0]


def hello(x):
    for i in x:
        return json.loads(i)

desired_variable=hello(select_css)

print(desired_variable['tree']['data']['results'][2]['images']['orig']['url'])