output_file = open("processed.txt", "a")
with open('text.json') as json_file:
object_list = json.load(json_file)
receive_txids = []
for object in object_list:
if object['category'] == 'receive':
receive_txids.append(object['txid'])
with open('list.txt', "r") as list_file:
for txid in receive_txids:
if txid not in list_file:
print "for ea txid " + txid
print "NEW TRANSACTION";
output_file.write(txid + '\n')
这是我的准则
这是列表.txt目录
^{pr2}$在文本.json看起来像这样:
[
{
"account" : "",
"address" : "D8xWhR8LqSdSLTxRWwouQ3EiSnvcjLmdo6",
"category" : "receive",
"amount" : 1000.00000000,
"confirmations" : 1963,
"blockhash" : "4569322b4c8c98fba3ef4c7bda91b53b4ee82d268eae2ff7658bc0d3753c00ff",
"blockindex" : 2,
"blocktime" : 1394242415,
"txid" : "45b629a779e6e0bf6d160c37833a27f1f2cc1bfa34632d166cccae83e69eb6fe",
"time" : 1394242265,
"timereceived" : 1394242265
},
{
"account" : "",
"address" : "D8xWhR8LqSdSLTxRWwouQ3EiSnvcjLmdo6",
"category" : "receive",
"amount" : 11.00000000,
"confirmations" : 1194,
"blockhash" : "eff3d32177bf19629fe0f8076807acbb02b34aedcbce1c27a19ce9872daecb7c",
"blockindex" : 6,
"blocktime" : 1394290663,
"txid" : "bf5b7bc1aeaf7fb43f5d39b549278bee6665872bd74274dd5fad80d043002a3e",
"time" : 1394290582,
"timereceived" : 1394290582
},
{
"account" : "",
"address" : "DKLMkLZmiSVXtEavDpQ4dasjZvC178QoM9",
"category" : "receive",
"amount" : 1.00000000,
"confirmations" : 1183,
"blockhash" : "7b5d3ebeb994dbff0940504db9e407bd90cad8a5a1ace05dcba4bc508ca27aff",
"blockindex" : 9,
"blocktime" : 1394291510,
"txid" : "1e5f49fa1d0df059b9d7da8452cde9fb5a312c823401f5ed4ed4eafb5f98c1b0",
"time" : 1394291510,
"timereceived" : 1394291578
},
{
"account" : "",
"address" : "DKLMkLZmiSVXtEavDpQ4dasjZvC178QoM9",
"category" : "receive",
"amount" : 1.00000000,
"confirmations" : 1179,
"blockhash" : "4d9bd6d2988bc749022c41d125f1134796aa314e0d0bde34eba855ad88e76a7f",
"blockindex" : 21,
"blocktime" : 1394291642,
"txid" : "7dc7cd4afcebaf8f17575be8b9acf06adcaadfe7fa5528453246307aa36e6ea0",
"time" : 1394291629,
"timereceived" : 1394291629
},
{
"account" : "",
"address" : "DKLMkLZmiSVXtEavDpQ4dasjZvC178QoM9",
"category" : "receive",
"amount" : 1.00000000,
"confirmations" : 1179,
"blockhash" : "4d9bd6d2988bc749022c41d125f1134796aa314e0d0bde34eba855ad88e76a7f",
"blockindex" : 20,
"blocktime" : 1394291642,
"txid" : "aefdb89b461c118529bec78b35fed46cc5d7050b39902552fa2408361284c746",
"time" : 1394291637,
"timereceived" : 1394291637
},
{
"account" : "",
"address" : "DKLMkLZmiSVXtEavDpQ4dasjZvC178QoM9",
"category" : "receive",
"amount" : 11.00000000,
"confirmations" : 34,
"blockhash" : "df34d9d44e87cd3315755d3e7794b10729fc3f5853c218ec237c43a89d918eb7",
"blockindex" : 5,
"blocktime" : 1394364125,
"txid" : "ec6abb67828c79cbf0b74131f0acfddc509efc9743bed0811d2316007cdcc482",
"time" : 1394348464,
"timereceived" : 1394348464
}
]
我一辈子都不知道为什么这不起作用。它每次迭代时都会打印“NEW TRANSACTION”。在
我要检查中的每个txid(事务id)json.txt文件,如果它已经存在于列表.txt. 如果没有,我想写信给“已处理.txt““
文件对象不支持包含测试;您需要读取文本文件。在
最简单的方法是将所有事务ID放入一个集合中,然后使用set操作删除
list.txt
中的所有txid。剩下的是要写入文件的新事务:如果仍然需要访问原始JSON对象,请使用字典,并以
^{pr2}$txid
为键,然后从文件中的字典中删除所有元素:open()
函数返回一个迭代器而不是一个列表,因此您只能使用in
运算符一次。在同一个迭代器上重复使用in
只检查已经到达的文件返回的空列表is end。在此外,每行仍然包含尾行分隔符字符,因此您应该使用
strip('\n\r')
来删除它们。在为了快速检查列表中是否有一项,您应该使用
set
。在这样的方法应该有效:
相关问题 更多 >
编程相关推荐