Won*_*nka 6 python string list append
我的问题String
# -*- coding: utf-8 -*-
print ("################################")
foo = "??142?.0000"
print (type(foo))
print("foo: "+foo)
foo_l = []
foo_l.append(foo)
print ("List: " )
print (foo_l)
print ("List decode: ")
print([x.decode("UTF-8") for x in foo_l])
print("Pop: "+foo_l.pop())
Run Code Online (Sandbox Code Playgroud)
打印结果:
################################
<type 'str'>
foo: ??142?.0000
List:
['\xd0\xa1\xd0\xa2142\xd0\x9d.0000']
List decode:
[u'\u0421\u0422142\u041d.0000']
Pop: ??142?.0000
Run Code Online (Sandbox Code Playgroud)
这很好用,我只需用键盘手写字符串"CT142H.0000"(其代码相同)
print ("################################")
foo = "CT142H.0000"
print(type(foo))
print("foo: "+foo)
foo_l = []
foo_l.append(foo)
print ("List: ")
print (foo_l)
print ("List decode: ")
print([x.decode("UTF-8") for x in foo_l])
print("Pop: "+foo_l.pop())
Run Code Online (Sandbox Code Playgroud)
打印结果:
################################
<type 'str'>
foo: CT142H.0000
List:
['CT142H.0000']
List decode:
[u'CT142H.0000']
Pop: CT142H.0000
Run Code Online (Sandbox Code Playgroud)
为什么python会在将其追加到列表中时对第一个字符串进行编码?
这个目前已经解决了,我担心那个字符,我把"结果"放在JSON然后在一个网站上,最后在网站上工作正常!
我找到了另一个解决方案,但没有一个正确的解决方案,因为在某些情况下你会遇到问题.
json.dumps(list, ensure_ascii=False)
Run Code Online (Sandbox Code Playgroud)
谢谢大家!
Ana*_*mar 11
因为即使它们看起来像普通C/ T/ H字符,它们实际上也不是那些字符.
他们是西里尔字符.
С - Cyrillic Capital
letterESТ - Cyrillic Capital
letterTEÍ - Cyrillic Capital letter EN
你需要检查你从哪里得到这些角色,为什么他们是这样.
关于它们为什么使用\x..表示法打印,是因为当你打印a时list,__str__()列表上的方法被调用,但是列表本身会调用__repr__()它的元素,因此你得到了字符串的内部表示.如果你这样做,你会得到类似的结果 -
print(repr(foo))
Run Code Online (Sandbox Code Playgroud)
对于第一种情况.