Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.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 Unicode字符串到Javascript_Javascript_Python_Json_Unicode - Fatal编程技术网

Python Unicode字符串到Javascript

Python Unicode字符串到Javascript,javascript,python,json,unicode,Javascript,Python,Json,Unicode,我希望在json文件中使用单个反斜杠获得输出,该文件是javascript/HTML文档的输入。它是为了使用vis.js进行可视化 我无法摆脱Python在反斜杠之前添加反斜杠的方式。我尝试过转义反斜杠并使用r“”类型的字符串 我有一本字典: f = {'id':0,'group':'main', 'label':'Main', \ 'font':{'size': 60}, 'shape': 'icon', 'icon': {'face':'Ionicons',\ 'code': r'\uf27

我希望在json文件中使用单个反斜杠获得输出,该文件是javascript/HTML文档的输入。它是为了使用vis.js进行可视化 我无法摆脱Python在反斜杠之前添加反斜杠的方式。我尝试过转义反斜杠并使用r“”类型的字符串

我有一本字典:

f = {'id':0,'group':'main', 'label':'Main', \
'font':{'size': 60}, 'shape': 'icon', 'icon': {'face':'Ionicons',\
'code': r'\uf276', 'size':200, 'color':'#f0a30a'}, \
'color': {'background': 'pink', 'border': 'black'}}

In [91]: print f
'{'group': 'main', 'color': {'border': 'black', 'background': 'pink'}, 'label': 'Main', 'shape': 'icon', 'font': {'size': 60}, 'id': 0, 'icon': {'size': 200, 'color': '#f0a30a', 'code': '\\uf276', 'face': 'Ionicons'}}
我使用json.dumps将其转储到json文件中

In [92]: json.dumps(f)
Out[92]: '{"group": "main", "color": {"border": "black", "background": "pink"}, "label": "Main", "shape": "icon", "font": {"size": 60}, "id": 0, "icon": {"size": 200, "color": "#f0a30a", "code": "\\\\uf276", "face": "Ionicons"}}'

In [93]: print json.dumps(f)
{"group": "main", "color": {"border": "black", "background": "pink"}, "label": "Main", "shape": "icon", "font": {"size": 60}, "id": 0, "icon": {"size": 200, "color": "#f0a30a", "code": "\\uf276", "face": "Ionicons"}}
我使用json.dump(filename,f)将此字符串保存到一个文件中,并输出以下内容:

{
    "group": "main", 
    "color": {
        "border": "black", 
        "background": "pink"
    }, 
    "label": "Main", 
    "shape": "icon", 
    "font": {
        "size": 60
    }, 
    "id": 0, 
    "icon": {
        "size": 200, 
        "color": "#f0a30a", 
        "code": "\\uf276", 
        "face": "Ionicons"
    }
} 

包含反斜杠的字符串是原始字符串。它不包含所需的unicode字符,而是实际的反斜杠,后跟“uf276”

将其转换为普通字符串:

f = {'id':0,'group':'main', 'label':'Main', \
'font':{'size': 60}, 'shape': 'icon', 'icon': {'face':'Ionicons',\
'code': '\uf276', 'size':200, 'color':'#f0a30a'}, \
'color': {'background': 'pink', 'border': 'black'}}
那么json转储也应该起作用:

>>> print(json.dumps(f, indent=4))
{
    "shape": "icon",
    "font": {
        "size": 60
    },
    "label": "Main",
    "color": {
        "background": "pink",
        "border": "black"
    },
    "group": "main",
    "id": 0,
    "icon": {
        "face": "Ionicons",
        "color": "#f0a30a",
        "size": 200,
        "code": "\uf276"
    }
}
我会给你

{
    "group": "main",
    "color": {
        "border": "black",
        "background": "pink"
    },
    "label": "Main",
    "shape": "icon",
    "font": {
        "size": 60
    },
    "id": 0,
    "icon": {
        "size": 200,
        "color": "#f0a30a",
        "code": "\xef\x89\xb6",
        "face": "Ionicons"
    }
}
编辑
此外,代码应该是
u'\uf276'

您的反斜杠位于原始字符串(
r'foobar'
)中,这就是为什么它实际上是反斜杠,而不是转义序列。即使这样,它也不起作用。我也试过普通的字符串。当我使用json.dumps()保存它时,它只是在这之前添加了一个额外的反斜杠。@mousecoder,当然,当您在REPL中查看结果字符串
json.dumps
时。但当您打印它(或将其转储到文件中)时,这没关系,请参见编辑。我认为问题在于,当您打印它时,它不会打印双反斜杠,但如果您将其保存在json文件中,字符串会显示双反斜杠。你能查一下吗?
{
    "group": "main",
    "color": {
        "border": "black",
        "background": "pink"
    },
    "label": "Main",
    "shape": "icon",
    "font": {
        "size": 60
    },
    "id": 0,
    "icon": {
        "size": 200,
        "color": "#f0a30a",
        "code": "\xef\x89\xb6",
        "face": "Ionicons"
    }
}