【问题标题】:Create and modify custom string [duplicate]创建和修改自定义字符串 [重复]
【发布时间】:2021-02-22 12:57:04
【问题描述】:

我已经创建了一个字符串:

userId = print('{\n    "userId": "1111111111abc",\n    "Message": null,\n    "Time": null"\n}')

输出:

{
    "userId": "1111111111abc",
    "Message": null,
    "Time": null"
}

现在我想用这个字符串“工作”。 我想访问/提取 UserId - 1111111111abc 的值。 但是当我开始删除第一个和最后 n 个字符时,它会说:

userId[3:]

TypeError: 'NoneType' 对象不可下标

为什么我需要这个?我将获得 100 多个 JSON 样式的字符串/文本(?),并且必须从中提取 UserId。


更新

对不起,我找不到我的问题here 的解决方案。如果有人可以通过我的示例然后提取所需的 ID,我会很高兴。当然可以的话。

【问题讨论】:

  • 请说明清楚,输入,输出你所期待的。

标签: python pandas string


【解决方案1】:

如果你将print 函数的返回值分配给一个变量,它一定是空的。如果您在下一行打印 userId,print(type(userId)),您将得到<class 'NoneType'>

首先,您必须将输入值分配给一个变量,然后访问它。虽然我不清楚这个问题,但它可能会帮助你。

代码:作为列表

userId = ['\n    "userId": "1111111111abc"','\n    "Message": null','\n    "Time": null"\n']
access_userId = userId[0][userId[0].find("\"") : ]
print(access_userId)

输出

"userId": "1111111111abc"

【讨论】:

    【解决方案2】:

    那是因为 print 函数实际上并没有返回你打印的东西,它总是返回 None。 您必须将值分配给实际变量,但即使您要使用此示例字符串执行此操作,您也无法像尝试那样使用切片来读取它,因为它只是一个字符串。 最好的选择是创建一个以“userId”、“Message”和“Time”作为键或 jsonified 字符串的字典。

    【讨论】:

      【解决方案3】:

      在 python 中print() 函数返回无。虽然它打印了一些值,但它不返回任何东西。

      你正在尝试对返回的值进行切片,即 None。

      因此出现错误TypeError: 'NoneType' object is not subscriptable

      要验证,请尝试将userId 打印为print(userId)

      您应该尝试访问“userId”,将您的字符串转换为json 格式并像上面那样访问它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-03
        • 1970-01-01
        • 1970-01-01
        • 2018-08-04
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多