如何检查字符串在Python中是否有效?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (162)

在Python中,在尝试解析字符串之前,是否有一种检查字符串是否有效的方法?

例如,使用FacebookGraphAPI,有时返回JSON,有时返回图像文件。

提问于
用户回答回答于

你可以试着去做json.loads(),它会抛出一个ValueError如果您传递的字符串不能解码为JSON。

用户回答回答于

如果字符串是有效的json,Python脚本将返回一个布尔值:

import json

def is_json(myjson):
  try:
    json_object = json.loads(myjson)
  except ValueError, e:
    return False
  return True

输出为:

print is_json("{}")                          #prints True
print is_json("{asdf}")                      #prints False
print is_json('{ "age":100}')                #prints True
print is_json("{'age':100 }")                #prints False
print is_json("{\"age\":100 }")              #prints True
print is_json('{"age":100 }')                #prints True
print is_json('{"foo":[5,6.8],"foo":"bar"}') #prints True

将JSON字符串转换为Python字典:

import json
mydict = json.loads('{"foo":"bar"}')
print(mydict['foo'])    #prints bar

mylist = json.loads("[5,6,7]")
print(mylist)
[5, 6, 7]

将python对象转换为JSON字符串:

foo = {}
foo['gummy'] = 'bear'
print(json.dumps(foo))           #prints {"gummy": "bear"}

关于pythonJSON模块的很好的教程:https://pymotw.com/2/json/

扫码关注云+社区

领取腾讯云代金券