【问题标题】:Converting Python dictionary to list, sequence error value将 Python 字典转换为列表、序列错误值
【发布时间】:2019-06-20 18:20:49
【问题描述】:

我必须阅读 .mat 文件并绘制其频谱图。当我从文件中读取内容时,我会得到字典,然后必须将其转换为列表。转换是在简单的 for 循环中完成的(如代码所示)。以 " 结尾的 signal.stft 函数存在错误 ValueError: setting an array element with a sequence"。那么我错过了什么,谁能帮我处理这段代码。

Fs = 8000
dtmf = sio.loadmat('dtmf1.mat')
dictlist = []

for key, value in dtmf.items():
    temp = [key,value]
    dictlist.append(temp)

f1, t1, Zxx1 = signal.stft(dictlist, Fs, nperseg=512,
                           window=signal.hamming(512), 
                           noverlap=512, boundary='even')

plt.figure()
plt.pcolormesh(t1, f1, 20*np.log10(np.abs(Zxx1)))
plt.xlabel('Time [s]')
plt.ylabel('Freq [Hz]')$

【问题讨论】:

  • 请向我们展示文件输入 dtmf1.mat 以及您如何定义信号和 sio。谢谢。
  • dictlist 是列表 [[k,v],[k,v]] 的列表。我不知道函数调用是否可以:signal.stft(...)

标签: python list dictionary dtmf


【解决方案1】:

我应该做的是

dictlist = dtmf['dtmf1'] 

而不是

for key, value in dtmf.items():
temp = [key,value]
dictlist.append(temp)

因为我的应用程序的字典中有多余的键(除了“dtmf1”)。

无论如何,非常感谢 âńōŋŷXmoůŜ 和 balderman。

【讨论】:

    猜你喜欢
    • 2022-11-14
    • 2015-07-23
    • 2011-11-18
    • 2022-08-16
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2016-10-25
    • 2022-12-04
    相关资源
    最近更新 更多