创建和修改自定义字符串 [重复]
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
格式并像上面那样访问它。
【讨论】:
以上是关于创建和修改自定义字符串 [重复]的主要内容,如果未能解决你的问题,请参考以下文章