【问题标题】:I keep getting this error (TypeError: string indices must be integers) I don't know why我不断收到此错误(TypeError:字符串索引必须是整数)我不知道为什么
【发布时间】:2017-11-27 21:44:25
【问题描述】:

我刚开始使用python,所以我在这方面没有太多经验。我正在尝试测试由 python 制作的 HRV 库或包来处理我的高级项目的心电图信号。我使用 Pycharm 作为我的 IDE。我正在尝试运行此代码:

from hrv.utils import open_rri
from array import array
rri = open_rri('C:/Users/PC/Documents/Pycharm/hrv-0.1.1/tests/test_files/test_file_2.hrm')
rri
array('u'[1092.,  879.,  746., ...,  931.,  968.,  958.])

但是,我不断收到此错误:

Traceback (most recent call last):
  File "C:/Users/PC/Documents/Pycharm/hrv-0.1.1/tests/__init__.py", line 5, in <module>
    array('u'[1092.,  879.,  746., ...,  931.,  968.,  958.])
TypeError: string indices must be integers

非常感谢您的帮助,

谢谢。

【问题讨论】:

标签: python python-3.x pycharm signal-processing


【解决方案1】:

您需要从您的数组创建中删除'u',使其看起来像:

from hrv.utils import open_rri
from array import array
rri = open_rri('C:/Users/PC/Documents/Pycharm/hrv-
0.1.1/tests/test_files/test_file_2.hrm')
rri
array([1092.,  879.,  746., ...,  931.,  968.,  958.])

按照您当前编写的方式,'u' 被视为字符串,[] 内的任何内容都被视为您要检索的索引。索引值必须是 int,但您指定的是浮点值,因此会出现错误。如果您需要每个值都是 Unicode 值,您可以将数字放入 char() 函数中。

array([char(1092), char(879), ......, char(958)])

如果您有很多值,那么您可以遍历值列表,将它们的 char 版本附加到一个新列表中,然后将其转换为一个数组。

【讨论】:

  • 我添加'u'的原因是它必须是unicode。所以删除后会出现如下错误:TypeError: array() argument 1 must be a unicode character, not list
猜你喜欢
  • 2019-11-26
  • 2011-08-29
  • 2021-06-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 2017-05-07
  • 1970-01-01
相关资源
最近更新 更多