如何使用Python将字典转换为属性名无引号的JavaScript对象
Python实现字典转无引号键名JS对象格式
完全可以通过Python实现该转换,你需要的输出是JavaScript对象字面量格式,和标准JSON的核心差异就是合法的属性名不需要用双引号包裹,以下是可直接复用的实现方案:
基础实现(适配你给出的示例场景)
针对键均为合法标识符、值为基础类型的扁平字典,可以直接通过字符串拼接生成目标格式:
def convert_to_js_literal(input_dict): kv_pairs = [] for key, val in input_dict.items(): # 处理不同类型的值,和JS语法对齐 if isinstance(val, str): val_formatted = f'"{val}"' elif isinstance(val, bool): val_formatted = "true" if val else "false" elif val is None: val_formatted = "null" else: val_formatted = str(val) kv_pairs.append(f" {key}: {val_formatted}") return "{\n" + ",\n".join(kv_pairs) + "\n}" # 测试你的示例字典 demo_dict = { "name": "Paul", "age": "20", "gender": "male" } print(convert_to_js_literal(demo_dict))
运行上述代码的输出完全匹配你需要的格式:
{ name: "Paul", age: "20", gender: "male" }
扩展适配说明
- 如果待转换的字典存在嵌套结构(值为字典、列表),只需要在函数中增加递归判断:值为字典时递归调用转换函数,值为列表时遍历处理每个元素后包裹
[]即可。 - 如果键名包含空格、连字符、JS保留字等不符合标识符命名规则的内容,需要自动给对应键名包裹双引号,避免生成的JS代码出现语法错误。
内容的提问来源于stack exchange,提问作者João Pedro
相关产品推荐
相关产品推荐

