2017-11-10 2 views
1

Zweiter Tag auf Web-Scraping mit Python. Ich versuche, eine Teilzeichenfolge innerhalb einer Zeichenfolge zu ziehen. Ich schrieb den folgenden Python-Code mit BeautifulSoup:Python Web Scraping BeautifulSoup - Teilzeichenfolge

containers = page_soup.findAll("li",{"class":"grid-tile "}) 
container_test = containers[7] 
product_container = container_test.findAll("div",{"class":"product- 
swatches"}) 
product = product_container[0].findAll("li") 
product[0].a.img.get("data-price") 

Dies gibt die folgenden:

'{"saleprice":"$39.90","price":""}' 

Wie drucke ich aus Saleprice und Preis separat? Ergebnis sollte wie folgt aussehen:

saleprice = $39.90 
price = "" 

Antwort

1

Verwenden Sie die json Modul - speziell, the loads method, die lädt JSON-Format Strings häufig auf Websites.

string = '{"saleprice":"$39.90","price":""}' 
>>> import json 
json_data = json.loads(string) 
sale_price = json_data['saleprice'] 
price = json_date['price'] 
print(saleprice, price) 
>>> (u'', u'$39.90') 

Die u die Zeichenfolge vorangehenden zeigt an, dass der String Unicode ist, die gut erklärt Zusätzlich here.

ist, Sie ast.literal_eval verwenden könnte, da die Zeichenfolge wie ein normales Python-Wörterbuch formatiert ist. Dieser Prozess wäre:

import ast 
string = '{"saleprice":"$39.90","price":""}' 
dict_representation_of_string = ast.literal_eval(string) 
print(string.keys()) 
>>> ['price', 'saleprice'] 
+1

Dies wirkt wie ein Zauber zu helfen !!! Vielen Dank! – Futochan