You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python函数中NDJSON/JSON的类型提示方案咨询

Python中NDJSON的类型提示方案

可选的类型提示方式:

  • 直接使用str类型
    NDJSON本质就是换行分隔的JSON字符串,最直接的方式就是用标准的str作为类型提示,示例代码如下:

    import json
    from typing import List, Dict
    
    def get_ndjson(employees_dicts_list: List[Dict[str, str | int]]) -> str:
        employee_data = [json.dumps(employee) for employee in employees_dicts_list]
        return "\n".join(employee_data)
    

    这种方式无需额外依赖,Python标准库完全支持,简单直接。

  • 自定义类型别名
    如果想让类型提示更具语义可读性,可以用typing.TypeAlias定义一个NDJSON别名:

    from typing import TypeAlias, List, Dict
    import json
    
    NDJSON: TypeAlias = str
    
    def get_ndjson(employees_dicts_list: List[Dict[str, str | int]]) -> NDJSON:
        employee_data = [json.dumps(employee) for employee in employees_dicts_list]
        return "\n".join(employee_data)
    

    这里NDJSON本质还是str,但能直观表达变量的语义,不会影响类型检查工具的判断,是平衡实用性和可读性的最优方案。

  • 用NewType创建严格语义类型
    若需要类型检查工具将NDJSON与普通字符串严格区分开,可以使用typing.NewType:

    from typing import NewType, List, Dict
    import json
    
    NDJSON = NewType("NDJSON", str)
    
    def get_ndjson(employees_dicts_list: List[Dict[str, str | int]]) -> NDJSON:
        employee_data = [json.dumps(employee) for employee in employees_dicts_list]
        return NDJSON("\n".join(employee_data))
    

    这种方式需要显式将字符串包装为NDJSON类型,类型检查时会认为它和普通str是不同类型,适合对语义区分要求极高的场景。

补充说明

Python标准库没有为JSON或NDJSON提供专门的内置类型提示,因为它们本质都是序列化后的字符串形式。根据你的需求选择上述方案即可。

内容的提问来源于stack exchange,提问作者Sander van den Oord

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 14:48:24