如果文件已经存在,如何在文件中查找,并且只附加json中的新条目



代码:

with open('test.txt', 'a+') as viewers:
while data['result']['list'] != '':
for users in data['result']['list']:
if users['nickName'] in viewers:
break
else:
viewers.write(users['nickName'] + 'n')

我想要写入文件的json如下所示。这个json来自一个新用户一直加入的实时流媒体。我想将所有用户写入一个文件,所以类似于"当"list"的值不为空时,继续从json中追加新用户"。当"列表":不再包含值时(因为直播已经结束,没有观众(,停止。

{
"code": 1,
"result": {
"liveType": 0,
"watchNum": 1161,
"rank": 0,
"duringF": 0,
"list": [
{
"price": 86,
"userId": 303249,
"img": "https://mp5.facecast.xyz/storage1/M00/13/CF/aPODCl2RJBKARTtTAAAD9Xj8lkw004.png",
"nickName": "ChillMick"
},
{
"price": 53,
"userId": 259943,
"img": "https://mp5.facecast.xyz/storage1/M09/11/90/aPODCl1Pa22AK4WgAAADcFKVlIk698.png",
"nickName": "ud83dudd37ud83dudd39u24c2ufe0f"
},
],
"earning": 14850,
"likeNum": 5154
},
"msg": "OK"

如何只能追加新条目?

使用一个集合。

创建一个可以按照你想要的方式进行哈希的对象…

例如

@dataclass
class User:
price: int
userId: int
img: str
nickName: str
def __hash__(self):
return hash(self.userId)  # assuming userId is the PK or hashable...

__eq__(self)定义为

则使用CCD_ 2来存储所有用户。。。假设这是记忆中的事情。如果不是,则使用一个具有充当PK.的字段的普通数据存储

最新更新