我使用Python 2从ASCII编码的文本文件解析JSON。

当用json或simplejson加载这些文件时,我的所有字符串值都转换为Unicode对象而不是字符串对象。问题是,我必须将数据与一些只接受字符串对象的库一起使用。我不能更改库也不能更新它们。

是否有可能获得字符串对象而不是Unicode对象?

例子

>>> import json
>>> original_list = ['a', 'b']
>>> json_list = json.dumps(original_list)
>>> json_list
'["a", "b"]'
>>> new_list = json.loads(json_list)
>>> new_list
[u'a', u'b']  # I want these to be of type `str`, not `unicode`

(2017年一个简单而干净的解决方案是使用最新版本的Python——即Python 3和更高版本。)

我必须在Python中做什么来找出字符串的编码?

假设我有一个函数

def NewFunction():
    return '£'

我想打印一些东西,前面有一个磅号,当我试图运行这个程序时,它打印一个错误,显示这个错误消息:

SyntaxError: Non-ASCII character '\xa3' in file 'blah' but no encoding declared;
see http://www.python.org/peps/pep-0263.html for details

有人能告诉我如何在返回函数中包含一个磅号吗?我基本上是在一个类中使用它,它是在'__str__'部分中,包含了磅号。

我需要用空格替换所有非ascii (\x00-\x7F)字符。我很惊讶,这在Python中不是非常容易的,除非我遗漏了什么。下面的函数简单地删除所有非ascii字符:

def remove_non_ascii_1(text):

    return ''.join(i for i in text if ord(i)<128)

这一个替换非ascii字符与空格的数量在字符编码点的字节数(即-字符替换为3个空格):

def remove_non_ascii_2(text):

    return re.sub(r'[^\x00-\x7F]',' ', text)

如何用一个空格替换所有非ascii字符?

在无数类似的SO问题中,没有一个是针对字符替换而不是剥离的,另外是针对所有非ascii字符而不是特定字符。

我目前正在使用Beautiful Soup来解析HTML文件并调用get_text(),但似乎我留下了很多\xa0 Unicode表示空格。在python2.7中是否有一种有效的方法将它们全部删除,并将它们更改为空格?我想更普遍的问题应该是,有没有办法移除Unicode格式?

我尝试使用:line = line。replace(u'\xa0',' '),正如另一个线程所建议的那样,但这将\xa0改为u,所以现在我到处都是“u”。):

编辑:这个问题似乎可以通过str.replace(u'\xa0', ' ').encode('utf-8')来解决,但是仅仅使用.encode('utf-8')而不使用replace()似乎会导致它吐出更奇怪的字符,例如\xc2。有人能解释一下吗?

我们在Team Foundation Server (TFS)中有一个项目,其中有一个非英语字符(š)。当尝试编写一些与构建相关的脚本时,我们偶然发现了一个问题——我们不能将这个字母传递给命令行工具。命令提示符或其他东西会把它弄乱,tf.exe实用程序无法找到指定的项目。

我尝试了不同格式的.bat文件(ANSI, UTF-8,带BOM和不带BOM),以及用JavaScript编写脚本(本质上是Unicode) -但运气不好。如何执行程序并传递一个Unicode命令行?

当一位同事向我展示这一行JavaScript提醒42时,我感到很困惑。

警报(2+ 40);

很快就会发现,看起来像负号的东西实际上是一个神秘的Unicode字符,具有明显不同的语义。

这让我想知道为什么在解析表达式时,该字符没有产生语法错误。我还想知道是否有更多的角色有这样的行为。

在。net中,在什么情况下我应该使用GC.SuppressFinalize()?

使用这种方法给我带来了什么好处?

我有个问题。我已经找到向下箭头的HTML代码,&darr;(↓)

酷。现在我需要像这样在CSS中使用它:

nav a:hover {content:"&darr";}

这显然行不通,因为&darr;是HTML符号。关于css中使用的“转义unicode”符号的信息似乎较少。我还发现了其他一些符号,比如\2020,但没有箭头。箭头代码是什么?

Unicode、UTF8、UTF7、UTF16、UTF32、ASCII和ANSI编码之间有什么区别?

这些对程序员有什么帮助?