Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用utf8将外语字符写入json_Python_Json_Utf 8 - Fatal编程技术网

Python 使用utf8将外语字符写入json

Python 使用utf8将外语字符写入json,python,json,utf-8,Python,Json,Utf 8,我试图使用Python2(2.56)将巴西葡萄牙语(但可以是任何受支持的语言)写入json文件。当我将字符写入日志文件时,会完美地显示,但是当写入json文件时,字符是不正确的 这是我的密码 #!/usr/bin/env python # -*- coding: utf-8 -*- data = u'ÁàâãçêíóôõúÜ' utfdata=data.encode('utf-8') LOG.info("utfdata:"+utfdata) Nam

我试图使用Python2(2.56)将巴西葡萄牙语(但可以是任何受支持的语言)写入json文件。当我将字符写入日志文件时,会完美地显示,但是当写入json文件时,字符是不正确的

这是我的密码

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    data = u'ÁàâãçêíóôõúÜ'
    utfdata=data.encode('utf-8')
    LOG.info("utfdata:"+utfdata)
    Name = utfdata

    s = s.replace("\"NAME\"", Name)
    f = open('appmodel.json',"w")
    f.write(s.encode('utf-8'))
还尝试将open()方法替换为 f=codecs.open('appmodel.json',encoding='utf-8',mode='w+'))

json文件中接收到的输出是ÃÃÃ、ÃçÃÃÃÃÃÃÃÃÃÃÃ而不是Á


有人能告诉我这是python错误还是我做错了什么吗

您如何查看输出文件?看起来它是正确有效的UTF-8,但你把它看作是拉丁语-1。@jwodder:你怎么知道它是什么样子的?@martineau:他发布了输出(
,我对这个问题的理解是如何使它成为json文件中应该包含的
如果您将
保存为UTF-8,但将其视为拉丁语-1,您将得到什么。这个问题的解决方案是将文件视为UTF-8,如何实现这一点取决于OP首先是如何查看文件的。