'for key, value in other: ValueError: too many values to unpack (expected 2)(pickle)

I use this code to get cookies and save them to file

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
import os

import requests, pickle


user = os.getlogin()
options = webdriver.ChromeOptions()
# options.headless = True
options.add_argument('--profile-directory=Default')
options.add_argument(
    f'--user-data-dir=C:\\Users\\{user}\\AppData\\Local\\Google\\Chrome\\User Data')

PATH = os.path.dirname(__file__) + "\\chromedriver.exe"
driver = webdriver.Chrome(
    executable_path=PATH, chrome_options=options)

driver.get("https://web.whatsapp.com")
WebDriverWait(driver, 5000).until(
    EC.presence_of_element_located((By.XPATH, '//*[@id="side"]/header/div[2]/div/span/div[2]/div')))
cook = driver.get_cookies()

pickle.dump( cook , open("cookies.pkl","wb"))

but when I want to read them give me a Error

code :

session = requests.session()  

with open('cookies.pkl', 'rb') as f:
    session.cookies.update(pickle.load(f))

Error :

for key, value in other:
ValueError: too many values to unpack (expected 2)

Thanks again if anyone can recommend a better way to read and write cookies in the file



Solution 1:[1]

Your cookies.pkl file contains a list while session.cookies.update expects a dictionary, so either iterate over your list and update multiple times or pick the correct cookies form the list and update using that

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Nullman