首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python解析JSON中的指针

使用python解析JSON中的指针
EN

Stack Overflow用户
提问于 2014-06-10 00:17:40
回答 2查看 882关注 0票数 0

我在Json中有以下数据,它有嵌套循环。这里,作者有一个指向className _User的指针。

代码语言:javascript
复制
{ "results": [
{
    "accepted": "YES",
    "author": {
        "__type": "Pointer",
        "className": "_User",
        "objectId": "HZ1c6AmfuE"
    },
    "createdAt": "2014-02-19T22:39:47.899Z",
    "objectId": "t6G5lLaxoR",
    "recipient": {
        "__type": "Pointer",
        "className": "_User",
        "objectId": "avIzy6RtKQ"
    },
    "updatedAt": "2014-02-19T22:40:08.906Z"
},
{
    "accepted": "YES",
    "author": {
        "__type": "Pointer",
        "className": "_User",
        "objectId": "HZ1c6AmfuE"
    },
    "createdAt": "2014-02-20T00:18:40.640Z",
    "objectId": "ZmagKJJVKd",
    "recipient": {
        "__type": "Pointer",
        "className": "_User",
        "objectId": "zw48k1oAw3"
    },
    "updatedAt": "2014-02-20T00:19:17.602Z"
}] }

我使用以下代码读取该文件

代码语言:javascript
复制
json_data = pd.read_json('RelationshipRequest.json')
df = pd.concat([pd.DataFrame.from_dict(item, orient='index').T for item in json_data.results])
print df.author

这些指纹:

代码语言:javascript
复制
0    {u'className': u'_User', u'__type': u'Pointer'...
0    {u'className': u'_User', u'__type': u'Pointer'...

我是否可以从作者中的嵌套字段中提取objectId以获得author.objectId = HZ1c6AmfuE?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-10 00:50:45

Python和JSON就是这样工作的:

要么将该内容保存在文件中,然后使用:

代码语言:javascript
复制
with open('RelationshipRequest.json', 'r') as fh:
    json_data = json.load(fh)

或者你自己直接把它作为字符串传递:

代码语言:javascript
复制
json_data = json.loads('{ ... }')

无论哪种方式,最终的结果都是(这就是访问JSON数据的方式):

代码语言:javascript
复制
for result in json_data['results']:
    print(result['author']['objectId'])

Python不把JSON数据当作对象来处理,就像在JavaScript中一样,它是一个字典,没有什么比它更重要的东西。将其转换为类对象可能有一些巧妙的技巧,但这通常是在Python中实际使用JSON数据的方式。

票数 1
EN

Stack Overflow用户

发布于 2014-06-10 01:27:53

我不完全理解您想要完成的任务,但是如果您只想提取objectId字段,那么下面的代码片段就可以做到这一点。

代码语言:javascript
复制
import json

with open('RelationshipRequest.json') as f:
    json_data = json.load(f)
    id_list =  [rec['author']['objectId'] for rec in json_data['results']]
    print id_list
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24131003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档