请问用JSON来储存selenium抓取的数据后,怎么对其中一个值的大小进行排序
def get_all_product_price_in_one_page():
card_bodys = wait.until(presence_of_all_elements_located((By.CLASS_NAME, "card-body")))
for card_body in card_bodys:
product_link = card_body.find_element(By.TAG_NAME,'a')
if os.name == 'posix':
product_link.send_keys(Keys.COMMAND,Keys.RETURN)
else:
product_link.send_keys(Keys.CONTROL,Keys.RETURN)
windows = driver.window_handles
driver.switch_to.window(windows[-1])
list_items = wait.until(presence_of_all_elements_located((By.CLASS_NAME, "list-group-item")))
time.sleep(operate_delay)
product = {}
name = list_items[0].text
price = list_items[2].text
price = price[price.find(' ')+1:]
product['name']=name
product['price']=price
products.append(product)
print(product,end='\n\n')
driver.close()
time.sleep(operate_delay)
driver.switch_to.window(windows[0])
def save_the_result(produts):
import json
with open('first_page_price.json','w') as f:
json.dump(produts,f,indent=4)
{'name': 'AIRPODS WIRELESS BLUETOOTH HEADPHONES', 'price': '$89.99'}
{'name': 'IPHONE 11 PRO 256GB MEMORY', 'price': '$599.99'}
{'name': 'CANNON EOS 80D DSLR CAMERA', 'price': '$929.99'}
{'name': 'SONY PLAYSTATION 4 PRO WHITE VERSION', 'price': '$399.99'}
{'name': 'LOGITECH G-SERIES GAMING MOUSE', 'price': '$49.99'}
{'name': 'AMAZON ECHO DOT 3RD GENERATION', 'price': '$29.99'}
{'name': 'PRO CELL PHONES&SMARTPHONES ECHO PURPLE OPPO WATCH', 'price': '$172.99'}
{'name': 'SUPERSHIELDZ DESIGNED FOR SAMSUNG GALAXY S20 FE 5G', 'price': '$598.99'}
{'name': 'APPLE MACBOOK AIR 11 INCHES MD223LL/A(4GB RAM, 64GB HD, MACOS 10.13)', 'price': '$269'}
{'name': 'APPLE PENCIL(2ND GENERATION)', 'price': '$296.99'}
{'name': 'APPLE WATCH SERIES 5', 'price': '$249.99'}
{'name': '2021 APPLE TV 4K(32GB)', 'price': '$570.99'}
把抓取的json值用json数组保存起来,然后调用以下示例:
json_array = [{"time":20150312,"value":"c"}, {"time":20150301,"value":"a"}, {"time":20150305,"value":"b"}]
json_array.sort(key = lambda x:x["time"])
print(json_array)
把以上的time替换成price
以上思路供参考。