我尝试遍历一个JSON对象/列表,从列表中获取价格。对于第一个“for”循环,它工作得很好,但是对于我的程序,我需要在第一个循环中嵌套另一个“for”循环,在第一个循环停止的地方有效地继续迭代。你知道吗
编辑:我很抱歉,因为我可能不太清楚我为什么要这样构造代码。这可能不是最好的解决方案,因为我对python不是很有经验,但我正在尝试根据这个JSON的历史价格模拟价格数据的循环流。因此,当price等于第一个循环中的某个值时,我试图在一个嵌套循环中继续最后一个循环结束时的数据流(它读取的最后一个price),使用不同的if语句,现在第一个循环已经触发。我知道这可能是一个非常糟糕的方法来解决这个问题,我很高兴听到建议如何做一个更简单的方式。你知道吗
for i in json:
time.sleep(1)
price = i['p']
if price == "0.00000183":
print("foo")
for i in json:
time.sleep(1)
price = float(i['p'])
if price == "0.00000181":
print("sold")
else:
continue
elif price == "0.00000185":
print ("sold")
break
else:
continue
JSON列表的示例段:
[
{
"a":4886508,
"p":"0.00000182",
"q":"10971.00000000",
"f":5883037,
"l":5883037,
"T":1566503952430,
"m":1,
"M":1
},
{
"a":4886509,
"p":"0.00000182",
"q":"10971.00000000",
"f":5883038,
"l":5883038,
"T":1566503953551,
"m":1,
"M":1
},
{
"a":4886510,
"p":"0.00000182",
"q":"10971.00000000",
"f":5883039,
"l":5883039,
"T":1566503954431,
"m":1,
"M":1
}
]
您的示例代码没有多大意义,因此不清楚您要实现什么。你知道吗
忽略这一点,如果使用^{} 读取文件,结果将是一个Python字典列表(相当于JSON
object
)。之后,您就可以遍历这个列表-您不需要做任何其他事情就可以转到下一个字典/对象。你知道吗在每个字典/对象中,您可以随机访问它包含的键/值对。如果你出于某种原因想遍历它们,你可以使用
obj.keys()
、obj.values()
或obj.items()
,就像你可以使用任何字典一样。你知道吗下面是我要说的一个小例子:
列表中有3个嵌套的dict,并且使用一个值
price
来存储所有3个dict;因此每次迭代都会覆盖该值。你知道吗我建议使用一个简单的列表理解来获得每个子目录的价格
这将导致:
尽管有一个名为
json
的内置模块作为预警,但是如果您想在将来使用它,您需要使用一个更具描述性的名称;而且您的其他命名约定是非常非信息性的,首先考虑更好的约定。你知道吗另外,价格值是字符串,因此与int相比毫无意义
使用
pandas
json
pandas
的力量。现在所有的信息都是可用的和易于使用的。你知道吗如果数据在文件中,如图所示:
如果数据只是一个命名对象(例如
data = [{...}, {...}, {...}]
)df
的输出:获取
p
,或任何其他信息:相关问题 更多 >
编程相关推荐