我试图在 Python 中模拟一个子字符串,但出现错误:
length_message = len(update)
if length_message > 140:
length_url = len(short['url'])
count_message = 140 - length_url
update = update["msg"][0:count_message] # Substring update variable
print update
return 0
错误如下:
Traceback (most recent call last):
File "C:\Users\anlopes\workspace\redes_sociais\src\twitterC.py", line 54, in <module>
x.updateTwitterStatus({"url": "http://xxx.com/?cat=49s", "msg": "Searching for some ....... tips?fffffffffffffffffffffffffffffdddddddddddddddddddddddddddddssssssssssssssssssssssssssssssssssssssssssssssssssseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddddddddddddddddddddddddddddddddddddfffffffffffffffffffffffffffffffffffffffffffff "})
File "C:\Users\anlopes\workspace\redes_sociais\src\twitterC.py", line 35, in updateTwitterStatus
update = update["msg"][0:count_message]
TypeError: string indices must be integers
我不能这样做吗?
update = update["msg"][0:count_message]
变量“count_message”返回“120”
给我一个线索。
最好的问候,
更新
我打这个电话,更新["msg"] 来自这里
x = TwitterC()
x.updateTwitterStatus({"url": "http://xxxx.com/?cat=49", "msg": "Searching for some ...... ....?fffffffffffffffffffffffffffffdddddddddddddddddddddddddddddssssssssssssssssssssssssssssssssssssssssssssssssssseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeedddddddddddddddddddddddddddddddddddddddddddddddfffffffffffffffffffffffffffffffffffffffffffffddddddddddddddddd"})
请您参考如下方法:
您是否多次循环此代码?
如果是这样,也许第一次通过update是一个dict,而update["msg"]返回的是一个字符串。很好。
但是你将 update 设置为等于结果:
update = update["msg"][0:int(count_message)]
这是(大概)一个字符串。
如果你正在循环,下一次循环你会遇到错误,因为现在 update 是一个字符串,而不是 dict(因此 update ["msg"] 不再有意义)。
您可以通过在错误之前输入打印语句来调试它:
print(type(update))
或者,如果不是太大,
print(repr(update))
