我正在用Python和Vincent编写一些代码来显示一些地图数据。
文档中的示例如下所示:
import vincent
county_topo = r'us_counties.topo.json'
state_topo = r'us_states.topo.json'
geo_data = [{'name': 'counties',
'url': county_topo,
'feature': 'us_counties.geo'},
{'name': 'states',
'url': state_topo,
'feature': 'us_states.geo'}]
vis = vincent.Map(geo_data=geo_data, scale=3000, projection='albersUsa')
del vis.marks[1].properties.update
vis.marks[0].properties.update.fill.value = '#084081'
vis.marks[1].properties.enter.stroke.value = '#fff'
vis.marks[0].properties.enter.stroke.value = '#7bccc4'
vis.to_json('map.json', html_out=True, html_path='map_template.html')
运行此代码会输出一个html文件,但格式不正确。它是某种python字符串表示形式b'<html>....</html>'
。
如果我删除了引号和前导b,那么当通过内置的python服务器运行时,html页面会按预期工作。
我的输出声明出了什么问题?
答案 0 :(得分:0)
来自文档:
&#39; b&#39;的前缀或者&#39; B&#39;在Python 2中被忽略;它表明了 literal应该成为Python 3中的字节文字(例如,当代码是 自动转换为2to3)。 A&#39; u&#39;或者&#39; b&#39;前缀可能是 接着是一个&#39; r&#39;前缀。
您可以使用以下方式对其进行切片:
with open('map_template.html', 'w') a f:
html = f.read()[2:-1]
f.truncate()
f.write(html)
这将打开您的html
文件
b'<html><head><title>MyFile</title></head></html>'
删除前两个和最后一个字符,给你:
<html><head><title>MyFile</title></head></html>