创建和修改自定义字符串 [重复]

Posted

技术标签:

【中文标题】创建和修改自定义字符串 [重复]【英文标题】: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,我会很高兴。当然可以的话。

【问题讨论】:

请说明清楚,输入,输出你所期待的。 【参考方案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 格式并像上面那样访问它。

【讨论】:

以上是关于创建和修改自定义字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

将自定义javascript对象转换为json [重复]

具有多个参数的 Laravel 自定义验证规则 [重复]

Swift:确定自定义对象数组是不是包含特定字符串[重复]

Python:使用自定义分隔符格式化字符串[重复]

Python:带有自定义分隔符的格式字符串[重复]

Xshell: 强大的安全终端仿真软件| Quick Commands发送重复字符串,自动化脚本自定义文本编辑