Json For循环返回所有

Json For循环返回所有,json,loops,for-loop,pandas,iterable,Json,Loops,For Loop,Pandas,Iterable,我有一个每行带有json字符串的熊猫数据帧。我想运行一个for循环来规范化每一行,并将数据返回到另一个数据帧,这样我就可以访问某些键值对 我的函数如下所示: for line in df: json_normalize(line) 这会打印出我想要的数据,但我想将其放入一个对象中,这样我就可以将其作为数据帧读取并对其执行操作。 数据如下: 3 [{u'from': {u'name': u'Aaron Roth', u'id': u'1... 5 [{u'from

我有一个每行带有json字符串的熊猫数据帧。我想运行一个for循环来规范化每一行,并将数据返回到另一个数据帧,这样我就可以访问某些键值对

我的函数如下所示:

for line in df:
        json_normalize(line)
这会打印出我想要的数据,但我想将其放入一个对象中,这样我就可以将其作为数据帧读取并对其执行操作。 数据如下:

3     [{u'from': {u'name': u'Aaron Roth', u'id': u'1...
5     [{u'from': {u'name': u'Elle Oh', u'id': u'1020...
6     [{u'from': {u'name': u'Chris Magorian', u'id':...
7     [{u'from': {u'name': u'Jimmy George', u'id': u...
8     [{u'from': {u'name': u'A'raelle Flynn-Bolden',...
12    [{u'from': {u'name': u'Aaron Roth', u'id': u'1...
13    [{u'from': {u'name': u'A'raelle Flynn-Bolden',...
16    [{u'from': {u'name': u'Matthew Emery', u'id': ...
17    [{u'from': {u'name': u'Elle Oh', u'id': u'1020...
18    [{u'from': {u'name': u'Gyasi Silas', u'id': u'...
19    [{u'from': {u'name': u'Alice Magorian', u'id':...
23    [{u'from': {u'name': u'Jonathan Jayasinghe', u...
24    [{u'from': {u'name': u'Aaron Roth', u'id': u'1...

您可以在json文本列上使用
map
方法应用
lambda
函数,该函数将使用
json解析json。加载
,然后返回所需的字段

import json

name = df.json_text.map(lambda s: json.loads(s)['from']['name'])
id = df.json_text.map(lambda s: json.loads(s)['from']['id'])

flattened = pd.DataFrame({'name':name, 'id',id})
或者,如果您想同时引入所有“from”字段(并且如果该字段中没有进一步嵌套),您可以简单地调用

flattened = pd.DataFrame(name = df.json_text.map(lambda s: json.loads(s)['from']['name'])

我认为您需要进一步展平JSON结构,以便不存在嵌套/嵌入文档。之后,您可以使用
pandas.read_json(orient=records)
将数据读入数据帧。我如何再次展平json?我的for循环正在尝试将其展平?你会怎么把它弄平?在将对象读入数据帧之前,我在对象中使用json_规范化,返回一个错误:TypeError:预期的字符串或缓冲区。我应该怎么做才能将序列传递到一个可以被json.loads读取的Str中?或者我应该传递json_normalize函数吗?