尝试在 Python 中读取 json 文件,然后将某个值添加到数组中
Posted
技术标签:
【中文标题】尝试在 Python 中读取 json 文件,然后将某个值添加到数组中【英文标题】:Trying to read a json file in Python then add a certain value into an array 【发布时间】:2017-11-21 22:00:35 【问题描述】:[OrderedDict([("'asin': '0000037214'", "'asin': '0000031887'"), ("'相关': 'also_viewed': ['B00JO8II76'", "'相关': 'also_bought': ['0000031852'"), ("'B00DGN4R1Q'", "'0000031895'"), ("'B00E1YRI4C']", "'0000031909'"), ("'title' : '紫色亮片小舞者芭蕾舞短裙舞仙公主服装配饰'", "'B00D2K1M3O'"), ("'price': 6.99", "'B00D10CLVW'"), ("'salesRank': 'Clothing': 1233557", "'B003AVKOP2'"), ("'imUrl': 'http://ecx.images-amazon.com/images/I/31mCncNuAZL.jpg'", "'B00D103F8U'"), ("'品牌': '大梦想'", "'B00613WDTQ'"), ("'类别': [['服装", "'B008F0SU0Y'"), ("鞋子和珠宝'", "'B008UBQZKU'"), ("'Girls']", "'B00D0GCI8S'"), ( " ['服装", "'B00E1YRI4C'"), ("'Novelty", "'B003AVEU6G'"), ("服装和更多'", "'B008F0SMUC'"), ("'服装和配饰'", "'B002C3Y6WG'"),
所以在 python 文件中,我想逐行解析这个 json 文件^^^,当它获得 ID 部分时,我希望它把它的值添加到列表中。我只是不想打印出我想将所有 ids 值附加到列表中的所有单个值。所以到最后,我应该有一个包含 1 和 2 的列表
clothing_ids = [1,2]
就像这样^^,下面是我到目前为止尝试过但似乎无法开始工作的内容。
clothing_ids = 'List of Clothing IDs': []
json_file = open('jsonfile.json', 'r')
file = json_file.read()
for line in file:
if 'id' in line:
clothing_ids['List of Clothing IDs'].append(this)
print(data)
json_file.close()
***此文件中的 ID 称为“asin”
【问题讨论】:
Parsing values from a JSON file?的可能重复 不,它是不同的,在那个问题是询问如何打印所有单独的值,如果我只想要 id 值并将它们附加到自己的列表中。希望这是有道理的。 为什么要逐行遍历数据而不是正确解析? @BryanOakley 抱歉,我对这个数据分析的东西有点陌生,我不知道解析它会是最好的:) 另外,您显示的数据是无效的 json。您确定它是 json 数据,而不仅仅是看起来像 JSON 但实际上不是的数据? 【参考方案1】:clothing_ids = []
for key, value in file.items():
if key == 'id':
clothing_ids.append(value)
遍历每个键值对,其中键为 ID,将值添加到您的 ID 列表中。
【讨论】:
键/值对在哪里? 这假设 OP 已将原始数据转换为结构化数据。出于某种原因,他们不想这样做。【参考方案2】:如果您的 JSON 文件在语法上是正确的并且包含这些对象的数组,那么您可以只使用 JSON 解析库:
import json
data = json.load(open('jsonfile.json'))
clothing_ids = 'List of Clothing IDs': map(lambda x: x['ID'], data)
这适用于这个 JSON 文件:
[
"ID": "1",
"FirstName": "John",
"LastName": "Smith",
"Age": 27
,
"ID": "2",
"FirstName": "Frank",
"LastName": "Jones",
"Age": 29
]
【讨论】:
以上是关于尝试在 Python 中读取 json 文件,然后将某个值添加到数组中的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 中读取 Twitter json 文件时出现 KeyErrors
在 Python 3.4 中加载和读取具有多个 JSON 对象的 JSON 文件