代码之家  ›  专栏  ›  技术社区  ›  x89

在json字典中将数字改为字符串

  •  0
  • x89  · 技术社区  · 4 年前

    我有一本这样的字典:

    {"first": {"phone": 1900,"other": 1}, "second": {"adwords": 1419, "no_om_source": 1223}}
    

    我把这个dict转换成json格式。我想把dict中的所有数字都改成字符串。

     def convert(o):
            if isinstance(o, np.generic): return o.item()  
            raise TypeError
    
     jsonContent = json.dumps(myDict, default=convert)
        with open('data.json', 'w', encoding='utf-8') as f:
            json.dump(jsonContent, f, ensure_ascii=False, indent=4)
        return jsonContent
    

    jsonContent ,值仍然是数字而不是字符串。我怎样才能改变这个?

    1 回复  |  直到 4 年前
        1
  •  1
  •   Buddy Bob Youngkhaf    4 年前

    在将dict转换为json格式之前,请尝试此操作。

    myDict = {"first": {"phone": 1900,"other": 1}, "second": {"adwords": 1419, "no_om_source": 1223}}
    for x in myDict:
        for k,v in myDict[x].items():
            myDict[x][k] = str(v)
    

    {'first': {'phone': '1900', 'other': '1'}, 'second': {'adwords': '1419', 'no_om_source': '1223'}}