从字符串中删除多个字符(形成一个单词)

时间:2018-06-04 13:28:55

标签: python regex string python-3.x

我有一个挑战,我试图使用split.strings来解决,但似乎不是按照我需要的方式设计不可变字符串,但主要是为了删除空格和单个字符。我也尝试过正则表达式,但由于它们在我目前的python课程中没有到期几周,我对它们的工作方式有点困惑(虽然我知道它们的基础知识)。

所以,我有一个JSON文件,它显示工厂的机器和人员数据,我需要解析机器数据,与设施内收集的人员数据分开。转换JSON文件并选择所需的数据是有效的,但在其中一个名为name的参数中,需要将人员和机器信息混合在一起。以下是两个分支的示例:

"id": "b4994c877c9c",
    "name": "forklift_0001", # here is the machine
    "areaId": "Tracking001",
    "areaName": "Ajoneuvo",
    "color": "#FF0000",
    "coordinateSystemId": "CoordSys001",
    "coordinateSystemName": null,
    "covarianceMatrix": [

"id": "b4994c879275",
    "name": "guest_0001", # here is a person
    "areaId": "Tracking001_2D",
    "areaName": "staff1",
    "color": "#CCFF66",
    "coordinateSystemId": "CoordSys001",
    "coordinateSystemName": null,
    "covarianceMatrix": [

我需要转换的代码如下:

for f in file_list:
    print('Input file: ' + f) # Replace with desired operations

with open(f, 'r') as f:

    distros = json.load(f)
    output_file = 'Output' + str(output_nr) + '.csv'

    with open(output_file, 'w') as text_file:
        for distro in distros:
            print(distro['name'] + ',' + str(distro['positionTS']) + ',' + str(distro['position']), file=text_file)

那么我需要在distro['name']数组(它是一个数组吗?)中做的是通过500k行并要求它删除任何不是叉车,起重机,机器,等等,只留下它们(后面则相反),这是我无法弄清楚的。

所有帮助都非常感谢。

1 个答案:

答案 0 :(得分:2)

据我了解你的问题,你想给每个条目一个标记'机器'或者' person',基于" name"标签

分配这样的标志(或者只是直接写入适当的文件)可以用例如

之类的东西来完成
with open(file1, 'w') as _file1, open(file2, 'w') as _file2, open(file3, 'w') as _file3:
    for distro in distros:
        yourstring = distro['name'] + ',' + str(distro['positionTS']) + ',' + str(distro['position'])

        if distro['name'].startswith(('forklift','crane',...)):
            _file1.write(yourstring)
        elif distro['name'].startswith(('guest','employee',...)):
            _file2.write(yourstring)
        else:
            _file3.write(yourstring)

已经打开一起写入的三个文件将包含最后的所有条目,在机器,人员和两者之间分开。

这会解决您的问题吗?