2016-06-27 65 views
0

我正在第一次使用網絡抓取工具,我正在使用美麗的湯來解析JSON文件並返回一些我發送給CSV的屬性。BeautifulSoup可以找到具有匹配值的元素嗎?

在JSON數組中,status變量是一個二進制值(0/1)。我想只返回狀態爲0的數組。這樣做可行嗎?

"""soup = BeautifulSoup(html) 
table = soup.find() 
print soup.prettify()""" 
js_data = json.loads(html) 
Attraction = [] 
event = [] 
status = [] 
for doc in js_data["response"]["docs"]: 
    Attraction.append(doc["Attraction"]) 
    event.append(doc["PostProcessedData"]["Onsales"]["event"]["date"]) 
    status.append(doc["PostProcessedData"]["Onsales"]["status"]) 
with open("out.csv","w") as f: 
    datas = zip(Attraction,event,status) 
    keys = ["Attraction","event","status"] 
    f.write(";".join(keys)) 
    for data in datas: 
     f.write(",".join([str(k).replace(",",";").replace("<br>"," ") for k in data])) 
     f.write("\n") 
+0

你嘗試過什麼,並沒有工作? –

+0

添加html和你想要得到的東西,你爲什麼要用bs4來解析json? –

回答

0

我可能失去了一些東西,但也許這會有所幫助:

for doc in js_data["response"]["docs"]: 
    if doc["PostProcessedData"]["Onsales"]["status"] == "0": 
     Attraction.append(doc["Attraction"]) 
     event.append(doc["PostProcessedData"]["Onsales"]["event"]["date"]) 
     status.append(doc["PostProcessedData"]["Onsales"]["status"]) 
+1

你可以改變'== 0:'爲'==「0」:',我會接受你的回答嗎?只需做出小小的調整,現在就可以正常工作。謝謝! – darkginger

+0

完成。不客氣 – Ryan

相關問題