python - 检查字符串是否不是反序列化的 json 或 python 中的列表

标签 python regex string

我有一个字符串,可以是以下形式:

s1 = "Hello HAHA"
s2 = '["Hello HAHA"]'
s3 = "{Hello HAHA}"

我想知道输入字符串是 s1、s2 还是 s3。我的动机是清理此输入并将其保存为 s1 格式。

基本上我需要知道输入字符串是否为 s1 形式。

我想到的解决方案:

  1. json.loads(s) 并捕获异常以检查它是否是 json
  2. 正则表达式搜索以查看输入字符串的开始和结束位置是否有{|}|[|],并替换它们。

Python的方法是什么?

最佳答案

使用strip . s.strip('[]"{}') 将删除字符串末尾不需要的字符。

>>> unwanted = '[]"{}'

>>> 'Hello HAHA'.strip(unwanted)
'Hello HAHA'

>>> '["Hello HAHA"]'.strip(unwanted)
'Hello HAHA'

>>> '{Hello HAHA}'.strip(unwanted)
'Hello HAHA'

关于python - 检查字符串是否不是反序列化的 json 或 python 中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596597/

相关文章:

python - 如何求和引用其他数据框的总数

css - Sublime Text 2 : How to reformat CSS to specific (non-standard) styles?

java - 可由多个单词组成的字符串的正则表达式 [java]

javascript - 使用 javascript 检查美国地址的正则表达式?

c++ - 将子字符串从 char* 复制到 std::string 的优雅方式

MySQL 将行加载到字符串内容

PHP: strpos() 找不到 '“'

python - 属性错误 : object has no attribute 'execute'

python - pydoc可以用来生成联机帮助页吗?

python - Django/Python 不喜欢 FloatField 的 None 值