警告:我是 Python、Pandas 和 PySerial 的新手......
我正在使用 Pandas 从 Excel 电子表格中读取值。Excel 中的值存储为文本,但同时包含字母和数字字符。 见 Excel 数据片段
我使用 Pandas 命令mydata = pd.read_excel (*path etc goes here*)
<<< 导入这些(此功能没有遇到问题)
然后我可以使用print(mydata)
.... 打印它们,并且输出看起来与 Excel 电子表格中的输出相同(即,没有多余的字符):
0 MW000000007150000300000;
1 MW000100009850000200000;
2 MW000200009860000200000; #<<<<<<<< *Notice that there are NO square brackets and no extra Quotes*.
为了通过 PySerial 函数将这些数据发送serial.write
到我的 RS-232 链接设备,我正在循环遍历必须(据我所知......)采用LIST格式的值。因此,我使用命令将数据字段mydata
转换为LISTAllocation_list=mydata.values.tolist()
如果 I print(Allocation_list)
,我发现添加了许多方括号和单引号,如您在此处看到的:
Allocation_list =([['MW000000007150000300000;'], ['MW000100009850000200000;'], ['MW000200009860000200000;'], ['MW000300009870000200000;'], ['MW000400009880000200000;'], ['MW000500009890000200000;']])
当我将 LIST 中的值 <<serial.write>> 到我的 RS-232 设备时,这些方括号不会被忽略。
事实上,这些值被写成(二进制版本的......)
0 memory written as ['MW000000007150000300000;']
1 memory written as ['MW000100009850000200000;']
2 memory written as ['MW000200009860000200000;']
3 memory written as ['MW000300009870000200000;']
4 memory written as ['MW000400009880000200000;']
5 memory written as ['MW000500009890000200000;']
不幸的是,为了让 RS-232 设备接受写入它的每一行作为可接受的命令,它们必须采用该设备的精确命令格式,看起来像
MW000000007150000300000; <<<<< 分号是语法的必需部分
因此,必须以某种方式删除方括号和引号。
对这个特殊问题的任何帮助将不胜感激,因为我已经尝试了其他“线程”中描述的几种方法,但它们似乎都不能正常工作,因为我的数据字段是一组字符串(它们只转换为位,因为它们即将写入 RS-232 设备)。米