Mein Wörterbuch als so strukturiert ist:Iterate ein Nested Wörterbuch in Python
stockData = {
'AAPL': {
'beta': 1.01833975315094,
'company_name': 'Apple',
'dividend': 1.9341673320912078,
'total':300},
'GOOG': {
'beta': 1.01833975315094,
'company_name': 'Apple',
'dividend': 1.9341673320912078,
'total':300}
}
und hier ist Bereich, in dem i-Werte zuweisen:
for row in range(2, sheet.max_row + 1):
# Each row in the spreadsheet has data for one census tract.
company_name = sheet['A' + str(row)].value
ticker = sheet['B' + str(row)].value
sector = sheet['C' + str(row)].value
shares = sheet['D' + str(row)].value
price = sheet['E' + str(row)].value
total = sheet['F' + str(row)].value
beta = sheet['G' + str(row)].value
dividend = sheet['H' + str(row)].value
number_stocks+=1
# Make sure the key for this ticker exists.
stockData.setdefault(ticker,{})
stockData[ticker]['company_name'] = company_name
stockData[ticker]['sector'] = sector
stockData[ticker]['shares'] = shares
stockData[ticker]['price'] = price
stockData[ticker]['total'] = total
stockData[ticker]['dividend'] = dividend
stockData[ticker]['beta'] = beta
Ich habe ein Problem, bei dem ich mit einer for-Schleife über das Wörterbuch iteriere, um einen neuen Wert 'prozentual' hinzuzufügen, der die 'Summe' dividiert durch die Summe aller Summen aller Aktien ist.
def get_portfolio_value(stocks,item):
portValue = 0
percentage = 0
for k, v in stocks.items():
portValue = portValue + v.get(item,0)
stockData[ticker]['percentage'] = stockData[ticker]['total']/portValue
print(portValue)
get_portfolio_value(stockData,'total')
das Problem ist, dass die get_portfolio_value Funktion mir die gesamte portValue Gesamt des Portfolios wird immer, aber die Linie, wo i bin versucht, den prozentualen Anteil des Portfolios zu jeder Aktie hinzufügen nicht righ arbeiten - es erscheint nur seltsam genug für nur einen der Aktien. Kann jemand beraten?
folgende @jDo, wo tut 'ticker' komme aus? – mikeqfu
@j Tut mir leid, ich habe den Top-Code, wo ich aus einer Excel-Datei lese nicht enthalten und Werte zuweisen. Dieses einfache Zitat war nur ein Fehler beim Eingeben des Codes hier. Ich habe gerade meinen Beitrag bearbeitet, um Wertzuweisungen hinzuzufügen. –
Gibt es eine gute Möglichkeit, die Aktienprozentsätze auch nach Sektor zu addieren? zum Beispiel, um eine Liste aller Sektoren mit dem Gesamtprozentsatz für diesen Sektor ... für alle Bestände zu erhalten? –