为了账号安全,请及时绑定邮箱和手机立即绑定

将存储在变量中的多个字符串转换为python中的单个列表

将存储在变量中的多个字符串转换为python中的单个列表

紫衣仙女 2023-01-04 16:19:49

我希望每个人都做得很好。我需要一点帮助,我需要从变量中获取所有字符串并需要存储到 python 中的单个列表中。例如 - 我有 json 文件,我从那里获取 id,当我运行 print(id) 时,所有 id 都被存储到一个名为 id 的变量中,如下所示


17298626-991c-e490-bae6-47079c6e2202

17298496-19bd-2f89-7b5f-881921abc632

17298698-3e17-7a9b-b337-aacfd9483b1b

172986ac-d91d-c4ea-2e50-d53700480dd0

172986d0-18aa-6f51-9c62-6cb087ad31e5

172986f4-80f0-5c21-3aee-12f22a5f4322

17298712-a4ac-7b36-08e9-8512fa8322dd

17298747-8cc6-d9d0-8d05-50adf228c029

1729875c-050f-9a99-4850-bb0e6ad35fb0

1729875f-0d50-dc94-5515-b4891c40d81c

17298761-c26b-3ce5-e77e-db412c38a5b4

172987c8-2b5d-0d94-c365-e8407b0a8860

1729881a-e583-2b54-3a52-d092020d9c1d

1729881c-64a2-67cf-d561-6e5e38ed14cb

172987ec-7a20-7eb6-3ebe-a9fb621bb566

7298813-7ac4-258b-d6f9-aaf43f9147b1

17298813-f1ef-d28a-0817-5f3b86c3cf23

17298828-b62b-9ee6-248b-521b0663226e

17298825-7449-2fcb-378e-13671cb4688a

我希望将这些所有值存储到一个列表中。有人可以帮我解决这个问题吗?


下面是我正在使用的代码:


import json

with open('requests.json') as f:

    data = json.load(f)

print(type(data))

for i in data:

     if 'traceId' in i:

         id = i['traceId']

         newid = id.split()

         #print(type(newid))

         print(newid)

下面是我的 json 文件:


[

   {

      "id": "376287298-hjd8-jfjb-khkf-6479280283e9",

      "submittedTime": 1591692502558,

      "traceId": "17298626-991c-e490-bae6-47079c6e2202",

      "userName": "ABC",

      "onlyChanged": true,

      "description": "Not Required",

      "startTime": 1591694487929,

      "result": "NONE",

      "state": "EXECUTING",

      "paused": false,

      "application": {

         "id": "16b22a09-a840-f4d9-f42a-64fd73fece57",

         "name": "XYZ"

      },

      "applicationProcess": {

         "id": "dihihdosfj9279278yrie8ue",

         "name": "Deploy",

         "version": 12

      },

      "environment": {

         "id": "fkjdshkjdshglkjdshgldshldsh03r937837",

         "name": "DEV"

      },

      "snapshot": {

         "id": "djnglkfdglki98478yhgjh48yr844h",

         "name": "DEV_snapshot"

      },


   },



从我试图获取 traceId 的地方。


查看完整描述

3 回答

?
慕标琳琳

TA贡献1546条经验 获得超9个赞

你可以使用像下面这样的简单split方法:


ids = '''17298626-991c-e490-bae6-47079c6e2202 17298496-19bd-2f89-7b5f-881921abc632 17298698-3e17-7a9b-b337-aacfd9483b1b 172986ac-d91d-c4ea-2e50-d53700480dd0 172986d0-18aa-6f51-9c62-6cb087ad31e5 172986f4-80f0-5c21-3aee-12f22a5f4322 17298712-a4ac-7b36-08e9-8512fa8322dd 17298747-8cc6-d9d0-8d05-50adf228c029 1729875c-050f-9a99-4850-bb0e6ad35fb0 1729875f-0d50-dc94-5515-b4891c40d81c 17298761-c26b-3ce5-e77e-db412c38a5b4 172987c8-2b5d-0d94-c365-e8407b0a8860 1729881a-e583-2b54-3a52-d092020d9c1d 1729881c-64a2-67cf-d561-6e5e38ed14cb 172987ec-7a20-7eb6-3ebe-a9fb621bb566 17298813-7ac4-258b-d6f9-aaf43f9147b1 17298813-f1ef-d28a-0817-5f3b86c3cf23 17298828-b62b-9ee6-248b-521b0663226e 17298825-7449-2fcb-378e-13671cb4688a'''


l = ids.split(" ")

print(l)

这将给出以下结果,我假设所需的分隔符是您可以适当调整的简单空间:


['17298626-991c-e490-bae6-47079c6e2202', '17298496-19bd-2f89-7b5f-881921abc632', '17298698-3e17-7a9b-b337-aacfd9483b1b', '172986ac-d91d-c4ea-2e50-d53700480dd0', '172986d0-18aa-6f51-9c62-6cb087ad31e5', '172986f4-80f0-5c21-3aee-12f22a5f4322', '17298712-a4ac-7b36-08e9-8512fa8322dd', '17298747-8cc6-d9d0-8d05-50adf228c029', '1729875c-050f-9a99-4850-bb0e6ad35fb0', '1729875f-0d50-dc94-5515-b4891c40d81c', '17298761-c26b-3ce5-e77e-db412c38a5b4', '172987c8-2b5d-0d94-c365-e8407b0a8860', '1729881a-e583-2b54-3a52-d092020d9c1d', '1729881c-64a2-67cf-d561-6e5e38ed14cb', '172987ec-7a20-7eb6-3ebe-a9fb621bb566', '17298813-7ac4-258b-d6f9-aaf43f9147b1', '17298813-f1ef-d28a-0817-5f3b86c3cf23', '17298828-b62b-9ee6-248b-521b0663226e', '17298825-7449-2fcb-378e-13671cb4688a']

编辑

你得到列表的列表,因为每次迭代你只读 1 id,所以你需要做的是启动一个空列表并按以下方式将每个 id 附加到它:


l = []

for i in data

    if 'traceId' in i:

         id = i['traceId']

         l.append(id)


查看完整回答
反对 回复 2023-01-04
?
慕妹3242003

TA贡献1546条经验 获得超6个赞

我假设你得到的id是一个str类型值。使用id.split()将在一个 Python 列表中返回所有 id 的列表,因为在您的示例中每个 id 由空格分隔。


id = """17298626-991c-e490-bae6-47079c6e2202 17298496-19bd-2f89-7b5f-881921abc632

        17298698-3e17-7a9b-b337-aacfd9483b1b 172986ac-d91d-c4ea-2e50-d53700480dd0

        172986d0-18aa-6f51-9c62-6cb087ad31e5 172986f4-80f0-5c21-3aee-12f22a5f4322

        17298712-a4ac-7b36-08e9-8512fa8322dd 17298747-8cc6-d9d0-8d05-50adf228c029

        1729875c-050f-9a99-4850-bb0e6ad35fb0 1729875f-0d50-dc94-5515-b4891c40d81c

        17298761-c26b-3ce5-e77e-db412c38a5b4 172987c8-2b5d-0d94-c365-e8407b0a8860

        1729881a-e583-2b54-3a52-d092020d9c1d 1729881c-64a2-67cf-d561-6e5e38ed14cb

        172987ec-7a20-7eb6-3ebe-a9fb621bb566 17298813-7ac4-258b-d6f9-aaf43f9147b1

        17298813-f1ef-d28a-0817-5f3b86c3cf23 17298828-b62b-9ee6-248b-521b0663226e

        17298825-7449-2fcb-378e-13671cb4688a"""

id_list = id.split()

print(id_list)

输出:


['17298626-991c-e490-bae6-47079c6e2202', '17298496-19bd-2f89-7b5f-881921abc632',

'17298698-3e17-7a9b-b337-aacfd9483b1b', '172986ac-d91d-c4ea-2e50-d53700480dd0',

'172986d0-18aa-6f51-9c62-6cb087ad31e5', '172986f4-80f0-5c21-3aee-12f22a5f4322',

'17298712-a4ac-7b36-08e9-8512fa8322dd', '17298747-8cc6-d9d0-8d05-50adf228c029',

'1729875c-050f-9a99-4850-bb0e6ad35fb0', '1729875f-0d50-dc94-5515-b4891c40d81c',

'17298761-c26b-3ce5-e77e-db412c38a5b4', '172987c8-2b5d-0d94-c365-e8407b0a8860',

'1729881a-e583-2b54-3a52-d092020d9c1d', '1729881c-64a2-67cf-d561-6e5e38ed14cb',

'172987ec-7a20-7eb6-3ebe-a9fb621bb566', '17298813-7ac4-258b-d6f9-aaf43f9147b1',

'17298813-f1ef-d28a-0817-5f3b86c3cf23', '17298828-b62b-9ee6-248b-521b0663226e',

'17298825-7449-2fcb-378e-13671cb4688a']

split()默认情况下以空格作为分隔符。如果需要,您可以使用sep参数来使用任何其他分隔符。


查看完整回答
反对 回复 2023-01-04
?
波斯汪

TA贡献1565条经验 获得超4个赞

您可以将变量附加ids到列表中,例如,


#list declaration

l1=[]


#this must be in your loop

l1.append(ids)


查看完整回答
反对 回复 2023-01-04

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信