Python拼接多组键值对为指定格式字符串报语法错误如何解决
问题原因
你写的两处代码的无效语法错误确实和冒号有关:
'key':'value'这种用冒号分隔的键值对写法,仅能在字典字面量、字典推导式等特定语法场景下使用。你直接把裸键值对传给str()或者str.join(),Python无法识别这种语法,就会抛出报错。- 另外两个函数的用法也不符合要求:
str.join()要求传入的参数是可迭代的字符串序列,不能直接传零散的键值对str()构造函数仅支持传入单个待转字符串的对象,或编码、错误处理相关参数,不支持直接传入零散键值对
解决方法
你的预期输出是Python字典去掉外层大括号的字符串形式,按以下步骤实现即可:
- 先构造合法的Python字典
- 将字典转为字符串后,切掉首尾的大括号即可
代码示例:
# 构造合法字典 data = { 'place_id': 231350287, 'licence': 'Data © OpenStreetMap contributors, ODbL 1.0. osm.org/copyright', 'osm_type': 'way', 'osm_id': 701902497, 'boundingbox': ['41.4689704', '41.4693896', '-81.9377844', '-81.9371249'], 'lat': '41.46913635', 'lon': '-81.93749898507869' } # 处理为符合要求的字符串 my_string = str(data)[1:-1].strip()
运行后my_string的内容和你预期的输出完全一致。
内容的提问来源于stack exchange,提问作者ASH
相关产品推荐
相关产品推荐

