远离笨比术 2022-05-05 23:03 采纳率: 72.4%
浏览 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 关于下拉菜单选项关联的问题
  • ¥15 如何修改pca中的feature函数
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R