mir = collectlist[10] #there are 12 items in collectlist
mon = collectlist[0]
for value in currentlist:
mon=mon[row] #total of 94 rows in mon, mon[[0] is first row
mir=mir[row] <–value error !!!
row += 1
mir gives me a value error starting on the first row, I’ve checked if row 0 excists and it does. So I’m not sure why mon doesn’t give a value error but mir does. When I just use mir or just use mon it works but when I use both variables, mir gives me a value error.
Print out the value of mir and mon to see what they are.
Also the value of row.
I don’t see how you can get a ValueError. Are you sure it’s not
IndexError?
Can you please start by copying and pasting the actual error message you
get? The entire traceback, not just the last line. It should start with
the word “Traceback”.
Thanks for your reply. Here is the error message and a part of the code that’s relevant.
Traceback (most recent call last):
File “/home/exhile/PycharmProjects/BinanceBot/main.py”, line 371, in
comp.UpDownRatio()
File “/home/exhile/PycharmProjects/BinanceBot/main.py”, line 282, in UpDownRatio
mir = mir[cnow] # cnow geeft huidige coin aan
KeyError: 1
part of code…
cnow = 0 # counter for loop value
mon = collectlist[0] # vergelijk waarde is 12 * 5 seconden geleden (1min)
#mor = collectlist.copy() # haal op een na recentste waarde op vd koers
mir = collectlist[0]
global posNeg,avPosneg, highpos, upCounter, XRP, XRPprice, sellList,inPos, relativ
avPosneg, posNeg = 0.0, 0.0 # posNeg = average % of cryptos going up or down
for value in currentPrices:
print('check min ' + str(len(mir)))
mir = mir[cnow] # cnow geeft huidige coin aan
print('check mon ' + str(len(mon)))
mon = mon[cnow]
cnow += 1
Thank you for posting the actual error. It’s not ValueError, its
KeyError, and that means that mir is not a list as we were told but a
dict. That makes things quite different from what we were told.
Do you understand the differences between a list and dict? If you have a
dict but try to use it as if it were a list, you will have many
problems. It’s like you have a screwdriver but try to use it as a
hammer.
Why do you think that the mir contains keys 0, 1, 2, …?
How is mir created and what’s in it?
You are asking us to debug code that we can’t see and don’t know the
data being used. That is difficult, which is why we have to ask so many
questions.
Guys I fixed it by changing mon = mon[cnow] to mir = mon[cnow]. When I want to acces values in collectlist[10] I could do:
mar = collectList[10]
mer = mar[cnow]
Why does it work when I hit nails with a hammer, but when I hit a cup
of coffee with a hammer it just makes a huge mess?
Why does it work when I roast potatoes but not when I roast salad?
Your two variables contain different things. Either different values of
the same type, or maybe different types of things, but either way they
are different. Because they are different, what you can do to them to
make them “work” is different. Programming is all about matching the
right tool to the right data to get the result you want.
>>> thing = [20, 30, 40]
>>> thing[0] # works
20
>>> thing['key'] # doesn't work
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: list indices must be integers or slices, not str
Without knowing what is in mon and mir, I cannot be more specific.