Ошибка EOF при использовании пула - PullRequest
0 голосов
/ 01 июня 2018

В своем коде я пытаюсь использовать многопроцессорность, чтобы найти максимальную цену каждой монеты с учетом URL.Для получения данных мне нужно около 1400 монет, поэтому я реализовал многопроцессорный пул Python.Я не уверен, правильно ли я его использую, но я следовал примеру, приведенному на этом сайте: https://docs.python.org/3.4/library/multiprocessing.html?highlight=process

Вот мой код:

import requests
import json
from bs4 import BeautifulSoup
from multiprocessing import Pool

max_prices = []

def find_max (url):
    # finds maximum price of a coin
    r = requests.get(url)
    cont = r.json()

    prices = list(map(lambda x: x[1], cont["price_usd"]))
    maxPrice = max(prices)

    return maxPrice


with open("coins.txt", "r") as f:
    data = json.load(f)
coin_slug = [d["slug"] for d in data]
coin_names = [d["name"] for d in data]

urls = []
for item in coin_slug:
    url = "https://graphs2.coinmarketcap.com/currencies/"+item+"/"
    urls.append(url)

if __name__ == '__main__':
    with Pool(5) as p:
        print(p.map(find_max, urls)

Когда я добавил эту частькода, он дал мне ошибку EOF:

if __name__ == '__main__':
   with Pool(5) as p:
        print(p.map(find_max, urls)

1 Ответ

0 голосов
/ 01 июня 2018

У вас несбалансированные скобки в последней строке.Это должно быть print(p.map(find_max, urls)).

...