如何从 JSON 文件中导入字段?
Posted
技术标签:
【中文标题】如何从 JSON 文件中导入字段?【英文标题】:How to import fields from a JSON file? 【发布时间】:2019-01-18 18:18:26 【问题描述】:我只想在我的 python 程序中导入由以下类型的行组成的 JSON 文件的一些字段:
"business_id":"Apn5Q_b6Nz61Tq4XzPdf9A",
"name":"Minhas Micro Brewery",
"neighborhood":"",
"address":"1314 44 Avenue NE",
"city":"Calgary",
"state":"AB",
"postal_code":"T2E 6L6",
"latitude":51.0918130155,
"longitude":-114.031674872,
"stars":4.0,
"review_count":24,
"is_open":1,
"attributes":
"BikeParking":"False",
"BusinessAcceptsCreditCards":"True",
"BusinessParking":"'garage': False, 'street': True, 'validated': False, 'lot': False, 'valet': False",
"GoodForKids":"True",
"HasTV":"True",
"NoiseLevel":"average",
"OutdoorSeating":"False",
"RestaurantsAttire":"casual",
"RestaurantsDelivery":"False",
"RestaurantsGoodForGroups":"True",
"RestaurantsPriceRange2":"2",
"RestaurantsReservations":"True",
"RestaurantsTakeOut":"True"
,
"categories":"Tours, Breweries, Pizza, Restaurants, Food, Hotels & Travel",
"hours":
"Monday":"8:30-17:0",
"Tuesday":"11:0-21:0",
"Wednesday":"11:0-21:0",
"Thursday":"11:0-21:0",
"Friday":"11:0-21:0",
"Saturday":"11:0-21:0"
例如,我只想导入以下字段:business_id、名称和类别。 我尝试了不同的方式,但程序无法识别这些字段,并且每一行都被视为一个字段。例如,我使用以下命令遇到了这个问题:
x = pd.read_json('.../data.json')
我也试过这样导入:
with open('.../data.json', 'r') as f:
x = json.load(f)
当我尝试命令时
x = x["business_id","name","categories"]
它返回以下错误
KeyError: "['business_id' 'name' 'categories'] not in index"
程序无法以任何方式识别字段。
【问题讨论】:
【参考方案1】:我只想在我的 python 程序中导入由以下类型的行组成的 JSON 文件的一些字段:
不确定我是否理解“导入”JSON 文件的意思,但我假设您想提取 JSON 文件的子集并将其保存为局部变量
如果是这样,那么您使用默认 json 模块的代码 sn-p 就不会太远了。 Json.load()
函数返回 Python 字典中的 json 数据。知道了这一点,我们只需要对如何从 python 字典中提取数据进行一些小的调整
在开始之前,我将您的 JSON 文件保存为“data.json”
import json
with open(r'data.json') as jsonfile:
data = json.load(jsonfile) # you had it right up to here
data_import = [data['business_id'],data['name'],data['categories']] #creating local variable
由于您已经从 JSON/python 字典导入,因此将 python 字典创建为本地导入变量是保持数据干净的另一种好方法
import json
with open(r'data.json') as jsonfile:
data = json.load(jsonfile)
data_import =
data_import['business_id'] = data['business_id']
data_import['name'] = data['name']
data_import['categories'] = data['categories']
【讨论】:
你建议的两种方式,都会出现同样的错误:“TypeError: list indices must be integers or slices, not str” 这很奇怪。第二种方法甚至没有列表。您是否尝试过隔离问题?检查 TypeError 来自哪一行 对不起,我弄错了。但它也给出了错误。 Traceback(最近一次调用最后):文件“........”,第 36 行,在以上是关于如何从 JSON 文件中导入字段?的主要内容,如果未能解决你的问题,请参考以下文章