Python初学者在这里,我真的在努力处理我想要打印的文本文件:
{"geometry": {"type": "Point", "coordinates":
[127.03790738341824,-21.727244054924235]}, "type": "Feature", "properties": {}}
有多个括号的事实使我感到困惑,并在尝试此操作后抛出Syntax Error
:
def test():
f = open('helloworld.txt','w')
lat_test = vehicle.location.global_relative_frame.lat
lon_test = vehicle.location.global_relative_frame.lon
f.write("{"geometry": {"type": "Point", "coordinates": [%s, %s]}, "type": "Feature", "properties": {}}" % (str(lat_test), str(lat_test)))
f.close()
正如您所看到的,我有自己的纬度和经度变量,但是python会抛出语法错误:
File "hello.py", line 90
f.write("{"geometry": {"type": "Point", "coordinates": [%s, %s]}, "type":
"Feature"" % (str(lat_test), str(lat_test)))
^
SyntaxError: invalid syntax
非常感谢您提供任何帮助。
答案 0 :(得分:1)
您传递给f.write()
的字符串未正确格式化。尝试:
f.write('{"geometry": {"type": "Point", "coordinates": [%s, %s]}, "type": "Feature", "properties": {}}' % (lat_test, lon_test))
这使用单引号作为最外面的引号集,并允许嵌入双引号。此外,您不需要在{* 1}}附近,只要str()
为%s
运行str()
。你的第二个也不正确(你通过了两次lat_test),我在上面的例子中修复了它。
如果你在这里做的是编写JSON,那么使用Python的JSON模块来帮助将Python字典转换为JSON字段会很有用:
import json
lat_test = vehicle.location.global_relative_frame.lat
lon_test = vehicle.location.global_relative_frame.lon
d = {
'Geometry': {
'type': 'Point',
'coordinates': [lat_test, lon_test],
'type': 'Feature',
'properties': {},
},
}
with open('helloworld.json', 'w') as f:
json.dump(d, f)
答案 1 :(得分:0)
您还可以使用tripple引用:
f.write("""{"geometry": {"type": "Point", "coordinates": [%s, %s]}, "type": "Feature", "properties": {}}""" % (str(lat_test), str(lat_test)))
但在这个具体案例中,json包完成了这项工作。