我如何通过在这里进行字符串拆分来获取 json 键名? (Python)

Posted

技术标签:

【中文标题】我如何通过在这里进行字符串拆分来获取 json 键名? (Python)【英文标题】:How would I get the json key names by doing a string split here? (Python) 【发布时间】:2017-04-06 00:19:44 【问题描述】:

我有一个 json 变量: [u'"Average_Rating":3.75,"Number_Of_Users_Who_Have_Watched_This_Movie":90,"title":"Quiz Show (1994)"']

而且我想获得“3.75”、“90”和“测验秀 (1994)”。我试过做:

  for i in var:
      i.split(":")[1:-3]

但它不起作用。我确定这很简单,但只是不知道如何正确使用它!有人可以帮忙吗?

编辑:

通常,我只会使用 json 库,但我使用的是 Apache PySpark,并且 JSON 存在一些问题 - 我如何仅使用字符串拆分来做到这一点?

【问题讨论】:

你没有 JSON var,你有一个包含一个 unicode 字符串的列表(包含 JSON)。 哦,我明白了,谢谢。我怎样才能从中获得各自的价值? 你有read the docs吗? 嗨@WayneWerner,刚刚进行了编辑。 @xn139 您可能想在您的问题中添加类似的限制,甚至可能以标签的形式。使用通用 python 标签,如果您认为它们可以帮助本地化您的问题,您仍然可以再添加 4 个。 【参考方案1】:

您正在尝试从 JSON 字符串中获取信息,您应该为此使用 json

var = [u'"Average_Rating":3.75,"Number_Of_Users_Who_Have_Watched_This_Movie":90,"title":"Quiz Show (1994)"']
import json

for i in var:
    print json.loads(i)["Average_Rating"]

根据原发帖者的要求:

var = [u'"Average_Rating":3.75,"Number_Of_Users_Who_Have_Watched_This_Movie":90,"title":"Quiz Show (1994)"']

for i in var:
    print(i.split(":")[1].split(",")[0])

【讨论】:

嗨,通常我会,但我使用的是 Apache PySpark,并且 JSON 存在一些问题 - 我如何仅使用字符串拆分来做到这一点?

以上是关于我如何通过在这里进行字符串拆分来获取 json 键名? (Python)的主要内容,如果未能解决你的问题,请参考以下文章

kettle如何实现拆分字段

如何拆分JSON字符串[重复]

地图减少如何工作..我说得对吗?

Android JSONObject - 我如何遍历一个平面 JSON 对象来获取每个键和值

使用json c ++的输出在字段中获取奇怪的字符

BigQuery拆分列并获取每个子字符串的计数[重复]