Я создал настраиваемое действие в фабрике данных и пытаюсь запустить следующий код. Я также создал пакетную учетную запись и пулы. Мне удалось успешно запустить простой код python. Но когда я пытаюсь выполнить следующий код, я получаю сообщение об ошибке «импорт дедупликации» в следующем коде. Не могли бы вы сообщить мне, почему я получаю эту ошибку, я что-то упускаю?
import os
import csv
import re
import logging
import optparse
import pandas as pd
import numpy as np
import dedupe
import pickle
if __name__ == '__main__':
optp = optparse.OptionParser()
optp.add_option('-v', '--verbose', dest='verbose', action='count',
help='Increase verbosity (specify multiple times for more)'
)
(opts, args) = optp.parse_args()
log_level = logging.WARNING
if opts.verbose:
if opts.verbose == 1:
log_level = logging.INFO
elif opts.verbose >= 2:
log_level = logging.DEBUG
logging.getLogger().setLevel(log_level)
input_file = 'testfile.csv'
output_file = 'out.csv'
settings_file = 'settings'
training_file = 'trainingfile.json'
print('importing data ...')
data = pd.read_csv(input_file)
data.set_index('Id')
data = data.where(pd.notnull(data), None)
data_d = data.to_dict('index')
if os.path.exists(settings_file):
print('reading from', settings_file)
with open(settings_file, 'rb') as f:
deduper = dedupe.StaticDedupe(f)
else:
fields = [
{'field' : 'fname', 'type': 'String'},
{'field' : 'lname', 'type': 'ShortString','has missing' : True},
{'field' : 'rnamr', 'type': 'String', 'has missing' : True},
{'field' : 'add', 'type': 'String', 'has missing' : True},
{'field' : 'username', 'type': 'ShortString', 'has missing' : True},
{'field' : 'namecommon', 'type': 'String', 'has missing' : True},
{'field' : 'wenurl', 'type': 'String', 'has missing' : True},
{'field' : 'country', 'type': 'ShortString', 'has missing' : True},
]
print('Creating deduper')
deduper = dedupe.Dedupe(fields)
Ошибка:
Traceback (most recent call last):
File "main.py", line 8, in <module>
import dedupe
File "C:\Anaconda\lib\site-packages\dedupe\__init__.py", line 6, in <module>
from dedupe._init import * # noqa
File "C:\Anaconda\lib\site-packages\dedupe\_init.py", line 1, in <module>
from dedupe.api import StaticDedupe, Dedupe # noqa: F401
File "C:\Anaconda\lib\site-packages\dedupe\api.py", line 21, in <module>
import dedupe.core as core
File "C:\Anaconda\lib\site-packages\dedupe\core.py", line 22, in <module>
from dedupe._typing import (RecordPairs, RecordID, Blocks, Data, Literal)
File "C:\Anaconda\lib\site-packages\dedupe\_typing.py", line 15, in <module>
from typing_extensions import TypedDict, Protocol, Literal
ImportError: cannot import name 'TypedDict'