远离笨比术 2022-05-05 23:03 采纳率: 70%
浏览 19
已结题

python简单问题,\n与字符串连接存入json文件,文件是乱码,这是咋回事

问题遇到的现象和发生背景

输入内容之后打印出来是这样的:
"username list:""\n\u2014\u2014james""\n\u2014\u2014cally""\n\u2014\u2014lucy""\n\u2014\u2014lily""\n\u2014\u2014dawn"
\n\u2014\u2014这个前缀是个啥玩意

问题相关代码,请勿粘贴截图

存储用户的名字在json程序里
filename='username.json'
contents='username list:'
with open(filename,'w') as f:
json.dump(contents,f)
while True:
guest_name=input("Please input your name:")
if guest_name == 'quit':
break
else:
guest_name=f"\n——{guest_name}"
filename='username.json'
with open(filename,'a') as f:
json.dump(guest_name,f)

尝试过的方法

我把guest_name=f"\n——{guest_name}"里面的斜杠删了
输出结果又变成 "\nkayy""\ncan""\nsandy"这样前面带\n,\n没发挥作用

我想要达到的结果

无前缀的正常形式

  • 写回答

1条回答 默认 最新

  • mengyoufengyu 2022-05-05 23:24
    关注

    1.\u2014\u2014 是你代码中{guest_name}前面的两个中文字符“——”的编码
    2.json输出的就是转为\n,不会真正换行的,不然json的格式就乱了,例如面的格式就不正确
    {name:"Tom
    Xiaoli",
    age:18
    }
    应该是:
    {name:"Tom\nXiaoli",
    age:18
    }
    3. 如果不想显示\u2014, 可以修改为json.dump(guest_name,f, ensure_ascii=False)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月20日
  • 已采纳回答 5月12日
  • 创建了问题 5月5日

悬赏问题

  • ¥15 单片机配网,继电器开关,广播
  • ¥60 Qcustomplot绘制实时动态曲线
  • ¥20 运用matlab画x-y图
  • ¥15 用idea运行项目,运行tomcat报错:断言失败
  • ¥15 Sqlserver查询链接服务器数据问题
  • ¥15 Bibtex4Word 引用中文文献
  • ¥20 用opencv c/c++ 转换成灰度图,然后做一下直方图均衡,输出mp4文件
  • ¥20 matlab中的双层数值积分
  • ¥50 服务器打印水晶报表问题
  • ¥30 gradle环境下javafx项目如何使用druid连接池