Community

Antworten
Als Mitglied der Community können Sie die Inhalte dieses Boards nur lesen. Für dieses Board freigeschaltete Mitglieder können aktiv an der Diskussion teilnehmen und eigene Beiträge und Kommentare schreiben. Wollen Sie dabei sein? Dann schicken Sie CB_Michael eine Nachricht mit ihrer Motivation zur Teilnahme.

Login & Nachricht schreiben

Highlighted
Autorität
Beiträge: 3.511
Registriert: ‎06.02.2015
Fehler beim Aufruf "GetSecurityInfo" in Python

Hallo zusammen,

 

aktuell versuche ich in Python die Wertpapier Informationen (securityServiceClient.GetSecurityInfo) abzurufen. Ich habe soweit alles definiert, bekomme aber immer den Fehler "Assignment not allowed to field "security_code" in protocol message object.".

 

Hier der verwendete Code zum Abruf der Wertpapier Informationen:

def set_securitycode(code, code_type):
    securitycode = SecurityService_pb2.SecurityCode()

    try:
        setattr(securitycode, 'code', code)
    except Exception as e:
        print('set_securitycode:', e)
        return 

    try:
        setattr(securitycode, 'code_type', code_type)
    except Exception as e:
        print('set_securitycode:', e)
        return 

    return securitycode


def get_securityinfo(_channel, token, code, code_type):
    securityserviceclient = TradingAPI_pb2_grpc.SecurityServiceStub(_channel)

    securitycode = set_securitycode(code, code_type)

    if securitycode is None:
        print('set_securitycode failed')
        return

    request = SecurityService_pb2.SecurityInfoRequest()

    try:
        setattr(request, 'access_token', token)
    except Exception as e:
        print('get_securityinfo:', e)

    try:
        setattr(request, 'security_code', securitycode)
    except Exception as e:
        print('get_securityinfo:', e)
        return

    request_data = securityserviceclient.GetSecurityInfo(request, 2.500)

    return request_data

Habe ich etwas übersehen oder muss der Parameter "security_code" anders übergeben werden?

 

 

Danke und viele Grüße

immermalanders

 

Highlighted
Aufsteiger
Beiträge: 33
Registriert: ‎12.02.2019
Betreff: Fehler beim Aufruf "GetSecurityInfo" in Python
[ Bearbeitet ]

Habe kein Python im Hand, versuchen Sie bitte so:

 

def set_securitycode(code, code_type):
    securitycode = SecurityService_pb2.SecurityCode(code=code, code_type=code_type)
    return securitycode

 

 

 

Highlighted
Aufsteiger
Beiträge: 33
Registriert: ‎12.02.2019
Betreff: Fehler beim Aufruf "GetSecurityInfo" in Python
[ Bearbeitet ]

Beispiel:

 

# Copyright 2018 Consorsbank and gRPC authors. 
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
"""The Python implementation of the GRPC client."""

from __future__ import print_function

import grpc

import AccessService_pb2
import AccessService_pb2_grpc
import AccountService_pb2
import AccountService_pb2_grpc
import Common_pb2
import Common_pb2_grpc
import DepotService_pb2
import DepotService_pb2_grpc
import OrderService_pb2
import OrderService_pb2_grpc
import SecurityService_pb2
import SecurityService_pb2_grpc
import StockExchangeService_pb2
import StockExchangeService_pb2_grpc
import TradingTypes_pb2
import TradingTypes_pb2_grpc
import TradingAPI_pb2
import TradingAPI_pb2_grpc


def run():

    host = "localhost"
    port = 40443

    with open('C:\\Deployment\\grpc\\roots.pem', 'rb') as f:
        trusted_certs = f.read()
        
    credentials = grpc.ssl_channel_credentials(root_certificates=trusted_certs)
    channel = grpc.secure_channel('{}:{}'.format(host, port), credentials)

    access_service_stub = TradingAPI_pb2_grpc.AccessServiceStub(channel)
    login_response = access_service_stub.Login(AccessService_pb2.LoginRequest(secret='1234567'))

    print("Login response: " + str(login_response))

    account_service_stub = TradingAPI_pb2_grpc.AccountServiceStub(channel)
    accounts_response = account_service_stub.GetTradingAccounts(Common_pb2.AccessTokenRequest(access_token=login_response.access_token))

    print("Accounts response: " + str(accounts_response))


if __name__ == '__main__':
    run()
Highlighted
Autorität
Beiträge: 3.511
Registriert: ‎06.02.2015
Betreff: Fehler beim Aufruf "GetSecurityInfo" in Python

@Lowenzahn 

Danke für den Hinweis, jetzt funktioniert der Abruf.