Python:如何很好地显示json结果?

Python:如何很好地显示json结果?,python,json,python-telegram-bot,Python,Json,Python Telegram Bot,我目前正在构建一个电报机器人,并在GooglePlacesAPI上获得JSON响应,以便将附近的位置返回给用户。 我得到的json响应如下: results" : [ { "name" : "Golden Village Tiong Bahru", "opening_hours" : { "open_now" : true }, "rating" : 4.2, "typ

我目前正在构建一个电报机器人,并在GooglePlacesAPI上获得JSON响应,以便将附近的位置返回给用户。 我得到的json响应如下:


results" : [
      {
         "name" : "Golden Village Tiong Bahru",
         "opening_hours" : {
            "open_now" : true
         },
         "rating" : 4.2,
         "types" : [ "movie_theater", "point_of_interest", "establishment" ],
         "user_ratings_total" : 773
      },
      {
         "name" : "Cathay Cineplex Cineleisure Orchard",
         "opening_hours" : {
            "open_now" : true
         },
         "rating" : 4.2,
         "types" : [ "movie_theater", "point_of_interest", "establishment" ],
         "user_ratings_total" : 574
      }
]


获取字典中特定项的当前代码

json.dumps([[s['name'], s['rating']] for s in object_json['results']], indent=3)
目前的结果:

[
   [
      "Golden Village Tiong Bahru",
      4.2
   ],
   [
      "Cathay Cineplex Cineleisure Orchard",
      4.2
   ]
]
我想获得名称、评级并并排显示:

Golden Village Tiong Bahru : 4.2, 
Cathay Cineplex Cineleisure Orchard : 4.2
请帮助。

可能需要:

json.dumps([s['name'] + ": " + str(s['rating']) for s in object_json['results']], indent=3)
可能是:

json.dumps([s['name'] + ": " + str(s['rating']) for s in object_json['results']], indent=3)

您想要json格式作为结果吗? 然后你可以做:

json.dumps({
s['name']:s['rating']
对于对象_json['results']
},缩进=3)
如果只需要字符串列表:

lines=[f”{s['name']}:{s['rating']}用于对象json['results']]中的s
或者您只想打印:


对象_json['results']中的s的

打印(f“{s['name']}:{s['rating']}”)
您需要3.6或更高版本的python解释器才能使用f-string(
f“…”
)。
我想你不需要,换一个
f“{s['name']}:{s['rating']}”
->
{name}:{rating}.format(**s)

是否需要json格式作为结果? 然后你可以做:

json.dumps({
s['name']:s['rating']
对于对象_json['results']
},缩进=3)
如果只需要字符串列表:

lines=[f”{s['name']}:{s['rating']}用于对象json['results']]中的s
或者您只想打印:


对象_json['results']中的s的

打印(f“{s['name']}:{s['rating']}”)
您需要3.6或更高版本的python解释器才能使用f-string(
f“…”
)。
我想你不需要,换一个
f“{s['name']}:{s['rating']}”
->
{name}:{rating}”。格式(**s)

谢谢!但是对于非json有可能吗?因为我会有“引号和一些奇怪的字符”\u2013
{“亚历山大公园酒店”:4.3,“宜必思budget新加坡费伯山酒店(前身为香水酒店\u2013皇家)”:3.6}
非常感谢您的帮助!!我尝试了for循环,但它只给出了第一个项目的名字。我一直在试图找出for循环。我刚刚意识到这可能是因为我使用return而不是printHi只是想知道,如果在键值对中,值在列表中,是否可以删除下划线??现在我的结果是本地餐厅和酒吧:餐厅,食物,兴趣点,设施。谢谢你的帮助help@blueKingdom11您可以为此调用
str.replace
方法。例如,
s['rating'].replace(''u','')
。谢谢,它能工作!但是对于非json有可能吗?因为我会有“引号和一些奇怪的字符”\u2013
{“亚历山大公园酒店”:4.3,“宜必思budget新加坡费伯山酒店(前身为香水酒店\u2013皇家)”:3.6}
非常感谢您的帮助!!我尝试了for循环,但它只给出了第一个项目的名字。我一直在试图找出for循环。我刚刚意识到这可能是因为我使用return而不是printHi只是想知道,如果在键值对中,值在列表中,是否可以删除下划线??现在我的结果是本地餐厅和酒吧:餐厅,食物,兴趣点,设施。谢谢你的帮助help@blueKingdom11您可以为此调用
str.replace
方法。例如,
s['rating'].replace(“,”)
对象json['results']中的s:print('%(名称)s:%(评级)s'%s)
对象json['results']中的s:print('%(名称)s:%(评级)s'%s)。