IBM人格洞察语法错误



我正在努力学习IBM沃森人格洞察API在今年年底关闭之前是如何工作的基本知识。我有一个基本的文本文件,我想分析,但我有麻烦,让代码正常运行。我一直试着按照官方的指示去做,但我被卡住了。我做错了什么?(我已经在下面的代码中涂抹了我的钥匙)。

from ibm_watson import PersonalityInsightsV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
authenticator = IAMAuthenticator('BlottedOutKey')
personality_insights = PersonalityInsightsV3(
version='2017-10-13',
authenticator=authenticator
)
personality_insights.set_service_url('https://api.us-west.personality-insights.watson.cloud.ibm.com')
with open(join(C:UsersAWaywardShepherdDocumentsData Science ProjectsTwitterScraper-masterTwitterScraper-mastersnscrapepython-wrapperFolderFile.txt), './profile.json')) as profile_json:
profile = personality_insights.profile(
profile_json.read(),
content_type='text/plain',
consumption_preferences=True,
raw_scores=True)
.get_result()
print(json.dumps(profile, indent=2))

我一直得到以下非描述性语法错误:

File "<ipython-input-1-1c7761f3f3ea>", line 11
with open(join(C:UsersAWaywardShepherdDocumentsData Science ProjectsTwitterScraper-masterTwitterScraper-mastersnscrapepython-wrapperFolderFile.txt), './profile.json')) as profile_json:
^ SyntaxError: invalid syntax

open行有很多错误。

  • join正在等待一个iterable,它将其连接成一个字符串。
  • 在Python中,字符串通过用引号括起来成为字符串(路径只是字符串!)
  • 你只传递一个值到join,这使得它是多余的。
  • open的第二个参数应该是一个模式,而不是文件名。
  • 看起来你在尝试用文件名附加一个目录,但是为了工作,目录不应该以文件名结束。
  • 括号不匹配-你有2个左括号和3个右括号。

在Python中,您使用join来连接要收集的字符串。通常这将是一个路径和一个文件名。从当前工作目录中获取路径,并将其与路径连接。

import os
file = os.path.join(os.getcwd(), 'profile.json')

在你的代码中,你只传递了一个字符串,所以不需要使用join。

使用open传递文件名和模式。模式类似于'r',表示读取模式。因此带有连接的代码变成。

import os
with open(os.path.join(os.getcwd(), 'profile.json'), 'r') as profile_json:

最新更新