使用Python提取字段

使用Python提取字段,python,Python,我正在寻找帮助,以提取一个特定的领域 这里是一个例子,我无法根据字段编号进行拆分和剪切,因为编号可能会因内容更改而更改 示例1 [["cn","Phone",1,"","LI(\"\")","0","19%","",""],["OS_DisplayName","Display Name",1,"","LI(\"\")","1,0","19%","",""],["OS_ProductPackage","Product Package",1,"","CO(\"\",\"REQ;1_BASIC!OS!

我正在寻找帮助,以提取一个特定的领域

这里是一个例子,我无法根据字段编号进行拆分和剪切,因为编号可能会因内容更改而更改

示例1

[["cn","Phone",1,"","LI(\"\")","0","19%","",""],["OS_DisplayName","Display Name",1,"","LI(\"\")","1,0","19%","",""],["OS_ProductPackage","Product Package",1,"","CO(\"\",\"REQ;1_BASIC!OS!TRV;2_Messaging!OS!OEM;3_Extended!OS!EAC;4_Enhanced!OS!APO;5_Analog Port!OS!CCA;6_Contact Center Agent\",\"\",\";\",\"\",\"\")","2,0","19%","",""],["sn","Last name",1,"","LI(\"\")","3,0","12%","",""],["givenName","First name",1,"","LI(\"\")","4,0","12%","",""],["OS_SiteCode","Site Code",1,"","LI(\"\")","5,0","19%","",""]],[["917845678923","Backup","OEM","917845678923","","CNdd_RD_91784567","","cn=917845678923,cn=Subscribers,cn=np_CNdd_RnD_WangJing,cn=IPC_APAC_1_01,cn=DN,cn=Resources,cn=Users,cn=OS"]],
输出应该是

cn=917845678923,cn=Subscribers,cn=np_CNdd_RnD_WangJing,cn=IPC_APAC_1_01,cn=DN,cn=Resources,cn=Users,cn=OS 
示例2

[["cn","Phone",1,"","LI(\"\")","0","19%","",""],["OS_DisplayName","Display Name",1,"","LI(\"\")","1,0","19%","",""],["OS_ProductPackage","Product Package",1,"","CO(\"\",\"REQ;1_BASIC!OS!TRV;2_Messaging!OS!OEM;3_Extended!OS!EAC;4_Enhanced!OS!APO;5_Analog Port!OS!CCA;6_Contact Center Agent\",\"\",\";\",\"\",\"\")","2,0","19%","",""],["sn","Last name",1,"","LI(\"\")","3,0","12%","",""],["givenName","First name",1,"","LI(\"\")","4,0","12%","",""],["OS_SiteCode","Site Code",1,"","LI(\"\")","5,0","19%","",""]],[["868694755000","Yaeng Danning","EAC","Yaeng","Dainning","CNdd_DT_86869475","","cn=868694755000,cn=Subscribers,cn=np_CNdd_DN,cn=IPC_APAC_1_01,cn=DN,cn=Resources,cn=Users,cn=OS"]],
输出应为

cn=868694755000,cn=Subscribers,cn=np_CNdd_DN,cn=IPC_APAC_1_01,cn=DN,cn=Resources,cn=Users,cn=OS
有人能帮我吗

我尝试了下面的代码,但由于字段号更改,我无法使用常量字段号(e[8])

    e = line3.split('","","')
    print "e"
    print e
    e = e[8].replace('"]],','').replace('","','').strip()
    print "e:" ,e

如果保证
cn
字段是最后一个字段,则可以执行以下操作:

cnFields = array [-1][-1]
然后按照您认为合适的方式对其进行解析


否则,您需要遍历2d数组,直到找到以
cn=
开头的字符串

如果保证
cn
字段是最后一个字段,您可以执行以下操作:

cnFields = array [-1][-1]
然后按照您认为合适的方式对其进行解析


否则,您需要遍历2d数组,直到找到以
cn=
开头的字符串

您可以将列表展平,然后在其中搜索

myList = (['one', 'two', ['cn=blahblah', 4, [5],['hi']], [6, [[[7, 'hello']]]]])

def flatten(container):
  for i in container:
    if isinstance(i, (list,tuple)):
      for j in flatten(i):
        yield j
    else:
      yield i

flattenedList = list(flatten(myList))

for x in flattenedList:
  if str(x).startswith('cn='):
    print(x)

您可以将列表展平,然后在其中搜索

myList = (['one', 'two', ['cn=blahblah', 4, [5],['hi']], [6, [[[7, 'hello']]]]])

def flatten(container):
  for i in container:
    if isinstance(i, (list,tuple)):
      for j in flatten(i):
        yield j
    else:
      yield i

flattenedList = list(flatten(myList))

for x in flattenedList:
  if str(x).startswith('cn='):
    print(x)

e=line3.split(“,”,“)
print e
e=e[8]。替换(“]”、“,”)。替换(“,”)。strip()
print“e:“,e
请编辑您的帖子-注释不是放置代码的正确位置。我尝试了此操作,现在它正在工作。我无法使用常量字段编号,您可以看到字段编号正在更改。
e=line3.拆分(“,”,“,”)
打印e
e=e[8]。替换(“,”,”)。替换(“,”,“,”)。带()“,e
请编辑您的帖子-注释不是放置代码的正确位置。我尝试了此方法,现在它正在工作。我不能使用常量字段编号,您可以看到字段编号正在更改。
>b=s[-1][-1]
>>sd=b[+7]
>打印sd
这对我有用吗我们可以在单行中使用它[-1][1]
>sd=b[+7]
>print sd
这对我有用吗?我们可以用单行吗?请给我一个例子,我给你写了工作代码…你应该把你的列表放在名为“myList”的变量中,它将被展平为一个简单的一维列表,您可以用一个简单的循环来解析。但是,当我尝试下面的展平列表打印链接时,
['、['、'、'、'c'、'n'、'、'P'、'h'、'o'、'n'、'e'、'、'1'、'、'、'、'、'、'L'、'i'、'('、'、'、'\\'、'",","0",","0",","0",","0",","0","","0","",""",""",""0",",",",",",",",",","","“,
用括号将列表括起来定义它…例如:myList=([[“cn”,“Phone”,1,“,………=”用户,cn=OS“])你能给我一个例子吗?我给你写了工作代码…你应该把列表放在名为“myList”的变量中,它将被展平为一个简单的一维列表,您可以用一个简单的循环来解析它。但是当我尝试我的展平列表打印链接时,它位于
['、['、'、'、'c'、'n'、'、'、'P'、'h'、'o'、'n'、'e'、'、'、'、'、'、'1'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'L'、'('、'、'、'、'、'、'、'、'、'、'、'、'、'('、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、'、",","0",","0",","0",","0",","0","","0","",""",""",""0",",",",",",",",",","","“,
将列表括在括号中以定义它…例如:myList=([[“cn”,“Phone”,1,“,………=用户,cn=OS”])