您需要将请求的迭代器传递给gRPC客户端存根,而不是传递给protobuf构造函数。当前代码尝试实例化a UserTweets 带有迭代器而不是单个字符串的protobuf,导致类型错误。
UserTweets
response = stub.UserMarkov(ProseAndBabel_pb2.UserTweets(tweets=iterator))
你需要拥有你的 iterator 返回的实例 ProseAndBabel_pb2.UserTweets ,每个包装您要发送的请求字符串之一,并将迭代器本身传递给存根。就像是:
iterator
ProseAndBabel_pb2.UserTweets
iterator = iter([ProseAndBabel_pb2.UserTweets(tweets=x) for x in block_of_text]) response = stub.UserMarkov(iterator)