Skip to main content
 首页 » 编程设计

python之Python 中的子字符串,这里有什么问题

2025年05月04日28kuangbin

我试图在 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))