将数据从JSON清理到Python时遇到问题
我最近才开始学习python,对JSON文件没有任何经验 当我导入JSON文件时,整个项目字典似乎都在一列中?我一直想把它分开,但似乎不起作用。 , 我尝试了将数据从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
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)
如果您能提供帮助并提前表示感谢,我们将不胜感激 看起来
可能位置
列包含pythondict
对象。不是json字符串。通过执行MRT['mable Locations'].map(str).apply(json.loads)
可以得到JSONDecodeError
,因为您试图用json解码dict字符串,因此会收到单引号与双引号的错误(JSON使用双引号,pythondict
对象将字符串表示为”
或“
)
鉴于上述情况,您应该能够通过
MRT\u站=MRT[“可能的位置”]
地铁站['Address']=地铁站。应用(lambda x:x['Address'])
看起来,可能位置
列包含pythondict
对象,而不是json字符串。通过执行MRT['apable Locations'].map(str.apply(json.loads),您将获得jsondecoderror
因为您试图对dict字符串进行json解码,因此会收到关于单引号与双引号的错误(json使用双引号,pythondict
对象将字符串表示为'
或“
)
鉴于上述情况,您应该能够通过
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'))
我可以进一步检查一下是否可以一次完成多个列吗?如果您能解释一下,这也将是一个很大的帮助