我可以用正则表达式,但不知道有没有更好的方法。你知道吗
例如,值可能返回为:
1.)'{"username": "joe.soap", "password": "pass@word123"}'
或者
2.)'https://www.url-example.com'
在1.)的情况下,我想把内容转换成实际的字典。我很高兴我知道如何做转换。我被困在如何识别1.)而不恢复使用正则表达式。你知道吗
编辑:因为有人问我,所以我计划这样进行转换:
import ast
if string_in_question == '{"username": "joe.soap", "password": "pass@word123"}':
return ast.literal_eval(string_in_question)
else:
return valid_command_returns
不必为复杂的正则表达式操心,只需尝试将字符串转换为字典即可。你知道吗
我假设您正在使用
json.loads
来完成它。如果字符串不表示字典json.loads
将引发异常。你知道吗请注意,如果使用
json.loads
,如果“键”没有用双引号括起来,则转换将失败,即尝试将字符串"{'username': 'joe.soap', 'password': 'pass@word123'}"
转换为字典也会引发异常。你知道吗这个程序的输出将是
https://www.url-example.com is not a dictionary
更新:
当使用
ast.literal_eval
时,概念是相同的,但是您必须捕获SyntaxError
,而不是ValueError
。注意,对于literal_eval
,单引号和双引号都是可以接受的。你知道吗和前面一样,输出是
https://www.url-example.com is not a dictionary
。你知道吗相关问题 更多 >
编程相关推荐