我在Json中有以下数据,它有嵌套循环。这里,作者有一个指向className _User的指针。
{ "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"
}] }我使用以下代码读取该文件
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这些指纹:
0 {u'className': u'_User', u'__type': u'Pointer'...
0 {u'className': u'_User', u'__type': u'Pointer'...我是否可以从作者中的嵌套字段中提取objectId以获得author.objectId = HZ1c6AmfuE?
发布于 2014-06-10 00:50:45
Python和JSON就是这样工作的:
要么将该内容保存在文件中,然后使用:
with open('RelationshipRequest.json', 'r') as fh:
json_data = json.load(fh)或者你自己直接把它作为字符串传递:
json_data = json.loads('{ ... }')无论哪种方式,最终的结果都是(这就是访问JSON数据的方式):
for result in json_data['results']:
print(result['author']['objectId'])Python不把JSON数据当作对象来处理,就像在JavaScript中一样,它是一个字典,没有什么比它更重要的东西。将其转换为类对象可能有一些巧妙的技巧,但这通常是在Python中实际使用JSON数据的方式。
发布于 2014-06-10 01:27:53
我不完全理解您想要完成的任务,但是如果您只想提取objectId字段,那么下面的代码片段就可以做到这一点。
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_listhttps://stackoverflow.com/questions/24131003
复制相似问题