ValueError: элемент последовательности обновления словаря # 0 имеет длину 1736; 2 требуется - PullRequest
0 голосов
/ 23 мая 2019

Я настроил Jupyter Notebook, который соединяет мои Postgresql database, вызывает данные в таблице и применяет модель машинного обучения из API к этим данным, которые являются описаниями продуктов, но я продолжаю получать ValueError: dictionary update sequence element #0 has length 1736; 2 is required, который Я очень незнаком с ..

Моя записная книжка настроена на 3 ячейки, но для ясности я собрал их ниже:

from watson_developer_cloud import NaturalLanguageClassifierV1
import pandas as pd
import psycopg2
import json

conn_string = 'host={} port={}  dbname={}  user={}  password={}'.format('119.203.10.242', 5432, 'mydb', 'locq', 'Mypass***')
conn_cbedce9523454e8e9fd3fb55d4c1a52e = psycopg2.connect(conn_string)

data_df_1 = pd.read_sql('SELECT description from public."search_product"', con=conn_cbedce9523454e8e9fd3fb55d4c1a52e)


natural_language_classifier = NaturalLanguageClassifierV1(
    iam_apikey='F76ugy8hv1s3sr87buhb7564vb7************',
    url='https://gateway.watsonplatform.net/natural-language-classifier/api/v1/classifiers/7818d2s519-nlc-1311')


classes = natural_language_classifier.classify_collection('7818d2s519-nlc-1311', [{data_df_1.to_json()}]).get_result()

print(json.dumps(classes, indent=2))

И это полный вывод ошибки:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-108-293ce740be95> in <module>()
      1 import json
      2 
----> 3 classes = natural_language_classifier.classify_collection('7818d2s519-nlc-1311', [{data_df_1.to_json()}]).get_result()
      4 
      5 print(json.dumps(classes, indent=2))

/opt/conda/envs/DSX-Python35/lib/python3.5/site-packages/watson_developer_cloud/natural_language_classifier_v1.py in classify_collection(self, classifier_id, collection, **kwargs)
    152         if collection is None:
    153             raise ValueError('collection must be provided')
--> 154         collection = [self._convert_model(x, ClassifyInput) for x in collection]
    155 
    156         headers = {}

/opt/conda/envs/DSX-Python35/lib/python3.5/site-packages/watson_developer_cloud/natural_language_classifier_v1.py in <listcomp>(.0)
    152         if collection is None:
    153             raise ValueError('collection must be provided')
--> 154         collection = [self._convert_model(x, ClassifyInput) for x in collection]
    155 
    156         headers = {}

/opt/conda/envs/DSX-Python35/lib/python3.5/site-packages/watson_developer_cloud/watson_service.py in _convert_model(val, classname)
    462             if isinstance(val, str):
    463                 val = json_import.loads(val)
--> 464             val = classname._from_dict(dict(val))
    465         if hasattr(val, "_to_dict"):
    466             return val._to_dict()


ValueError: dictionary update sequence element #0 has length 1736; 2 is required

Как это можно исправить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...