将数据从JSON清理到Python时遇到问题

将数据从JSON清理到Python时遇到问题,python,json,split,Python,Json,Split,我最近才开始学习python,对JSON文件没有任何经验 当我导入JSON文件时,整个项目字典似乎都在一列中?我一直想把它分开,但似乎不起作用。 , 我尝试了np.split,但是有一个类型错误:无法使用'class'str'的索引器[,]对其进行切片索引。 我也试过了 MRT=pd.read\u json('MRT\u stations.json')) MRT_Stations=MRT['Popular Locations'].map(str.apply)(json.loads) 地铁站['A

我最近才开始学习python,对JSON文件没有任何经验

当我导入JSON文件时,整个项目字典似乎都在一列中?我一直想把它分开,但似乎不起作用。 ,

我尝试了
np.split
,但是有一个
类型错误:无法使用'class'str'的索引器[,]对其进行切片索引。

我也试过了

MRT=pd.read\u json('MRT\u stations.json'))
MRT_Stations=MRT['Popular Locations'].map(str.apply)(json.loads)
地铁站['Address']=jsonO.apply(lambda x:x['Address'])

正如我在电视上看到的

但是,它返回一个
JSONDecodeError:需要用双引号括起来的属性名:第1行第3列(char 2)


如果您能提供帮助并提前表示感谢,我们将不胜感激

看起来
可能位置
列包含python
dict
对象。不是json字符串。通过执行
MRT['mable Locations'].map(str).apply(json.loads)
可以得到
JSONDecodeError
,因为您试图用json解码dict字符串,因此会收到单引号与双引号的错误(JSON使用双引号,python
dict
对象将字符串表示为

鉴于上述情况,您应该能够通过

MRT\u站=MRT[“可能的位置”]
地铁站['Address']=地铁站。应用(lambda x:x['Address'])

看起来,
可能位置
列包含python
dict
对象,而不是json字符串。通过执行
MRT['apable Locations'].map(str.apply(json.loads),您将获得
jsondecoderror
因为您试图对dict字符串进行json解码,因此会收到关于单引号与双引号的错误(json使用双引号,python
dict
对象将字符串表示为
'

鉴于上述情况,您应该能够通过

MRT\u站=MRT[“可能的位置”]
地铁站['Address']=地铁站。应用(lambda x:x['Address'])

读取文件时是否会引发错误

import json
import pd

with open('mrt_stations.json') as json_file:
  mrt_json = json.load(json_file)

mrt_df = pd.DataFrame(data=mrt_json)
print(mrt_df)

mrt_stations = mrt_df['Possible Locations']
mrt_stations['Address'] = mrt_stations.apply(lambda x: x['Address'])

读取文件时是否会引发错误

import json
import pd

with open('mrt_stations.json') as json_file:
  mrt_json = json.load(json_file)

mrt_df = pd.DataFrame(data=mrt_json)
print(mrt_df)

mrt_stations = mrt_df['Possible Locations']
mrt_stations['Address'] = mrt_stations.apply(lambda x: x['Address'])

您可以尝试
json.load('mrt_stations.json')
问得好。感谢您提供了输入数据的示例!@SowjanyaRBhat嗨,我尝试了这个,但我得到了一个AttributeError:'str'对象没有属性'read',您可以尝试
json.load('mrt_stations.json'))
问得好。感谢您提供输入数据的示例!@SowjanyaRBhat Hi我尝试了此操作,但得到了一个AttributeError:“str”对象没有属性“read”。我尝试了上述代码,但出现了一个类型错误:列表索引必须是整数或片,而不是str。我在尝试许多不同的方法时遇到了相同的错误(对不起,除了上述2项之外,我记不清我尝试了什么)啊,的确如此。这是因为
可能的位置
列包含
dict
对象,这些对象被包装在
列表
中。如果
可能的位置
中的每个列表只包含1个
dict
,那么您应该能够让它与
地铁站['Address']=MRT站一起工作。应用(lambda x:x[0]['Address']
。在
可能位置下的每个列表中是否有超过1个元素需要处理?是的,有超过1个元素。我最初试图一次拆分所有元素,但我决定尝试使用1个元素(“地址”)首先,文件中有‘地址’、‘Blk No’、‘建筑’、‘纬度’、‘经度’、‘邮政编码’、‘道路名称’、‘搜索值’、‘X’、‘Y’。我想超链接有点不清楚。我在上面的逗号后面附加了一个屏幕截图。我希望它能给你一个更清晰的图片!你能从可能的位置复制粘贴单个单元格的内容吗s
columns?即,
MRT.在[0,'可能的位置]
我也尝试了您建议的新代码,代码可以运行,但我完全不知道如何继续输出。我检查了
.dtypes
它显示
dtype('O'))
我可以进一步检查一下是否可以同时执行多个列吗?如果您能解释一下所使用的代码,这将是一个很大的帮助。谢谢!我尝试了上面的代码,但出现了一个类型错误:列表索引必须是整数或片,而不是str。我在尝试许多不同的方法时遇到了同样的错误(对不起,除了上述2项之外,我记不清我尝试了什么)啊,的确如此。这是因为
可能的位置
列包含
dict
对象,这些对象被包装在
列表
中。如果
可能的位置
中的每个列表只包含1个
dict
,那么您应该能够让它与
地铁站['Address']=MRT站一起工作。应用(lambda x:x[0]['Address']
。在
可能位置下的每个列表中是否有超过1个元素需要处理?是的,有超过1个元素。我最初试图一次拆分所有元素,但我决定尝试使用1个元素(“地址”)首先,文件中有‘地址’、‘Blk No’、‘建筑’、‘纬度’、‘经度’、‘邮政编码’、‘道路名称’、‘搜索值’、‘X’、‘Y’。我想超链接有点不清楚。我在上面的逗号后面附加了一个屏幕截图。我希望它能给你一个更清晰的图片!你能从可能的位置复制粘贴单个单元格的内容吗s
columns?即,
MRT.在[0,'可能的位置]
我也尝试了您建议的新代码,代码可以运行,但我完全不知道如何继续输出。我检查了
.dtypes
它显示
dtype('O'))
我可以进一步检查一下是否可以一次完成多个列吗?如果您能解释一下,这也将是一个很大的帮助