使用两个不同的分割将字符串分成2d数组

问题描述 投票:0回答:3

我正在尝试使用2d数组将值输入CSV。我有一个用','分隔的字符串来分隔值和';'分开每一行。

以下字符串;

text = 536924636,www.microsoft.com,http://www.microsoft.com/pkiops/crl/MicW;536924733,www.microsoft.com,http://www.microsoft.com/pkiops/certs/Mi;536925898,crl.microsoft.com,http://crl.microsoft.com/pki/crl/product;

我希望能够将行拆分成2d数组

arr = reg.split([','][';'])

所以它最终会像这样;

arr =[ 
['536924636','www.microsoft.com','http://www.microsoft.com/pkiops/crl/MicW'],
['536924733','www.microsoft.com','http://www.microsoft.com/pkiops/certs/Mi'],
['536924636','www.microsoft.com','http://www.microsoft.com/pkiops/crl/MicW']]

但是当我尝试这个时,我得到以下错误;

  arr = reg.split([','][';'])
TypeError: list indices must be integers or slices, not str

谁能帮我实现这个目标?

谢谢

python arrays python-3.x multidimensional-array split
3个回答
0
投票

函数split()将一个字符串拆分为一个列表。您不能通过传递两个参数而不是一个参数来生成两个维度。

但你可以调用它两次,每个分隔符一次:

>>> text = "536924636,www.microsoft.com,http://www.microsoft.com/pkiops/crl/MicW;536924733,www.microsoft.com,http://www.microsoft.com/pkiops/certs/Mi;536925898,crl.microsoft.com,http://crl.microsoft.com/pki/crl/product;"
>>> [r.split(",") for r in [r for r in text.split(";")]]
[
['536924636', 'www.microsoft.com', 'http://www.microsoft.com/pkiops/crl/MicW'], 
['536924733', 'www.microsoft.com', 'http://www.microsoft.com/pkiops/certs/Mi'], 
['536925898', 'crl.microsoft.com', 'http://crl.microsoft.com/pki/crl/product'], 
['']
]

0
投票
x = str(input())
arr  = x.split(";")
finalArr = []
for items in arr:
    arr2 = []
    arr2.append(items)
    finalArr.append(arr2)
print(finalArr)

试试吧。我希望这就是你要找的东西。


0
投票

一个简单的方法可以

arr = [i.split(',') for i in text.split(';')]
© www.soinside.com 2019 - 2024. All rights reserved.