当我尝试使用以下代码加载json文件时,它会提供一些u字符:
import json
with open('strings.json') as json_data:
d = json.load(json_data)
print(d)
[{u'goat': 45}, {u'chicken': 45}]
怎么回事?有什么想法吗?
答案 0 :(得分:2)
u'
是Unicode字符的前缀
答案 1 :(得分:1)
您看到的{% set group = 'machine-' + tag %}
{% if ansible_fqdn in groups[group] %}
{% for host in groups[group] %}
echo "Do some magic with my {{ tag }}"
{% endfor %}
{% endif %}
代表u
,这是一种非常普遍的codification system,可让您管理几乎所有存在的所有语言中的字符。
最好将字符串编码为unicode,但是如果要在开始时不使用unicode
来打印字符串,则可以使用:
u
Here,您可以在print(mystring.encode("utf-8"))
前缀上进行SO讨论,有人会在编码中引用this amazing article。
答案 2 :(得分:-1)
您不能将''
用于JSON格式。您必须将""
用于JSON格式。并且您使用了u'something'
Unicode格式。在本节中无需使用Unicode。有时需要对b''
进行二进制编码。
所以您的代码看起来像
import json
with open('strings.json', encoding("utf-8")) as json_data:
d = json.load(json_data)
print(d)
#[{"goat": 45},{"chicken": 45}]