Я получил некоторые .proto файлы от поставщика услуг для получения данных о запасах. Они дают мне php-код, но мне нужно использовать python. Я пытаюсь сделать то же самое в python, но у меня не получилось и не получилось. Официальные документы не очень ясно .. и мои навыки программирования настолько низки ..
И это мой код на Python (основная часть) , при запуске этого кода будет сообщение об ошибке: «<_Rendezvous> RPC, завершившегося с помощью (StatusCode.UNIMPLEMENTED, метод не найден: xxxxxxxxxxxxxxxxx.HistoricalQuoteService / getTodayM1Quotes) «. Я думаю, что я не подключился к серверу. Когда я добавляю код ниже:
options.append(update_metadata2)
Сообщение об ошибке будет изменено на: «слишком много значений для распаковки»
symbol = common_pb2.Symbol()
symbol.code = "BABA"symbol.market = common_pb2.US
symbol.type = common_pb2.Stock
market_request = marketData_pb2.MarketDataRequest()
market_request.symbol.code = symbol.code
market_request.symbol.market = symbol.market
market_request.symbol.type = symbol.type
market_request.language = common_pb2.zhHans
print(market_request)
try:
path = os.path.abspath('.')
pemPath = path + '/open_test_cert.pem'
transport_creds = grpc.ssl_channel_credentials(open(pemPath).read())
options = []
update_metadata = {}
update_metadata2 = {}
update_metadata['UserName'] = 'xxxx'
update_metadata['Password'] = 'yyyy'
update_metadata2['grpc.ssl_target_name_override'] = 'open.test.yintongzhibo.com'
options.append(update_metadata)
# options.append(update_metadata2)
channel = grpc.secure_channel("open.test.yintongzhibo.com:9002",transport_creds,options)# credentials , project= google_auth.default(scopes=(scope1,scope2,scope3))
# credentials , project= google_auth.default()
# http_request = google_auth_transport_requests.Request()
# metadata_plugin = AuthMetadataPlugin(credentials,http_request)
# google_auth_credentials = grpc.metadata_call_credentials(metadata_plugin)
# ssl_credentials = grpc.ssl_channel_credentials(open(pemPath).read())
# composite_credentials = grpc.composite_channel_credentials(ssl_credentials,google_auth_credentials)
# channel = grpc.secure_channel("open.test.yintongzhibo.com:9002",composite_credentials)
# channel = google_auth_transport_grpc.secure_authorized_channel(credentials,request,'open.test.yintongzhibo.com:9002')stub = historicalQuote_pb2_grpc.HistoricalQuoteServiceStub(channel)
response = stub.getTodayM1Quotes(symbol)
# stub = marketData_pb2_grpc.MarketDataServiceStub(channel)
# response = stub.getMarketData(market_request)
print(response.message)
except Exception as e:
print (e)
Итак, как мне написать код Python для достижения той же функции кода PHP? И как я могу получить больше журнала ошибок? Спасибо всем!
код PHP здесь:
Код PHP
Задача ещё не решена.
Других решений пока нет …