判断一个值是否为空: - None - 字符串为纯空白 - 字符串只含 Markdown代码围栏 ```(可能伴随换行、空格)
(value)
| 2 | import re |
| 3 | |
| 4 | def is_empty_value(value): |
| 5 | """ |
| 6 | 判断一个值是否为空: |
| 7 | - None |
| 8 | - 字符串为纯空白 |
| 9 | - 字符串只含 Markdown代码围栏 ```(可能伴随换行、空格) |
| 10 | """ |
| 11 | if value is None: |
| 12 | return True |
| 13 | if isinstance(value, str): |
| 14 | # 去掉首尾空白 |
| 15 | stripped = value.strip() |
| 16 | if stripped == "": |
| 17 | return True |
| 18 | # 去掉所有反引号后再检查 |
| 19 | no_backticks = stripped.replace("`", "").strip() |
| 20 | if no_backticks == "": |
| 21 | return True |
| 22 | # 如果匹配只有 ``` 包围的内容并且中间是空 |
| 23 | if re.fullmatch(r"```(\s*)```", stripped): |
| 24 | return True |
| 25 | return False |
| 26 | |
| 27 | def remove_empty(obj, remove_empty_containers=True): |
| 28 | if isinstance(obj, dict): |