使用几个重复的元素访问python列表的后一个元素

2024-09-29 09:26:36 发布

您现在位置:Python中文网/ 问答频道 /正文

将虚构的列表A进行扫描(id,messageid,firstname,type,text),并假设列表上的以下项目(那些用粗体标记的项目)是相关的,而其他项目则不是。A=

['ok', 'true', 'result', 'updateid', '230999144', 'message', 'messageid', '26', 'from', 'id', '250313842', 'firstname', 'John', 'lastname', 'Doe', 'chat', 'id', '250313842', 'firstname', 'John', 'lastname', 'Doe', 'type', 'private', 'date', '2490213676', 'text', '/start', 'entities', 'type', 'botcommand', 'offset', '0', 'length', '6', 'updateid', '230999145', 'message', 'messageid', '27', 'from', 'id', '250313842', 'firstname', 'John', 'lastname', 'Doe', 'chat', 'id', '250313842', 'firstname', 'John', 'lastname', 'Doe', 'type', 'private', 'date', '2490213690', 'text', 'Damn', 'it', 'feels', 'good', 'to', 'be', 'a', 'gangsta']

我们可以看到在这个列表中有很多冗余,但事实是这种重复可以发生N次,而不是像这个例子中的两次。后面的结果总是与“扫描”相关的结果。如何最好地访问它们?我不想使用多个'索引',以保持代码尽可能有效。你知道吗

请记住,所需的输出如下: messageid: 27userid: 250313842username: John Doeusertext: "Damn it feels good to be a gangsta"

所讨论的列表来自聊天机器人的https推送门,它作为文本字符串推送,其原始形式是:

{
  "result": [
    {
      "update_id": 230999144,
      "message": {
        "from": {
          "id": 250313842,
          "first_name": "John",
          "last_name": "Doe"
        },
        "entities": [
          {
            "length": 6,
            "type": "bot_command",
            "offset": 0
          }
        ],
        "text": "/start",
        "date": 2490213676,
        "message_id": 26,
        "chat": {
          "id": 250313842,
          "type": "private",
          "first_name": "John",
          "last_name": "Doe"
        }
      }
    },
    {
      "update_id": 230999145,
      "message": {
        "date": 2490213690,
        "chat": {
          "id": 250313842,
          "type": "private",
          "first_name": "John",
          "last_name": "Doe"
        },
        "message_id": 27,
        "text": "Damn it feels good to be a gangsta",
        "from": {
          "id": 250313842,
          "first_name": "John",
          "last_name": "Doe"
        }
      }
    }
  ],
  "ok": true
}

我事先感谢你帮我解决这个问题。你知道吗


Tags: textnamefromidmessage列表datetype
1条回答
网友
1楼 · 发布于 2024-09-29 09:26:36

由于原始文本是JSON,因此可以使用json将其解析为字典:

import json

data = json.loads(your_json_string)

…现在您可以像访问任何字典/数据结构一样访问所有数据。你知道吗

>>> data["result"][-1]["message"]["text"]
u'Damn it feels good to be a gangsta'

相关问题 更多 >