Python 写入JSON文件并更新所述文件

Python 写入JSON文件并更新所述文件,python,json,python-2.7,Python,Json,Python 2.7,我有以下代码将写入JSON文件: import json def write_data_to_table(word, hash): data = {word: hash} with open("rainbow_table\\rainbow.json", "a+") as table: table.write(json.dumps(data)) 我要做的是打开JSON文件,在其中添加另一行,然后关闭它。我怎样才能做到这一点而不弄乱文件 从现在开始,当我运

我有以下代码将写入JSON文件:

import json    

def write_data_to_table(word, hash):
    data = {word: hash}
    with open("rainbow_table\\rainbow.json", "a+") as table:
        table.write(json.dumps(data))
我要做的是打开JSON文件,在其中添加另一行,然后关闭它。我怎样才能做到这一点而不弄乱文件

从现在开始,当我运行代码时,我得到以下信息:

write_data_to_table("test1", "0123456789")
write_data_to_table("test2", "00123456789")
write_data_to_table("test3", "000123456789")

#<= {"test1": "0123456789"}{"test2": "00123456789"}{"test3": "000123456789"}

您可以通过以下方式读取JSON数据:

parsed_json = json.loads(json_string)
parsed_json.update({'test4': 0000123456789})
现在,您可以操作一本经典词典。您可以通过以下方式添加数据:

parsed_json = json.loads(json_string)
parsed_json.update({'test4': 0000123456789})
然后,您可以使用以下命令将数据写入文件:

with open('data.txt', 'w') as outfile:
    json.dump(parsed_json, outfile)

您可以通过以下方式读取JSON数据:

parsed_json = json.loads(json_string)
parsed_json.update({'test4': 0000123456789})
现在,您可以操作一本经典词典。您可以通过以下方式添加数据:

parsed_json = json.loads(json_string)
parsed_json.update({'test4': 0000123456789})
然后,您可以使用以下命令将数据写入文件:

with open('data.txt', 'w') as outfile:
    json.dump(parsed_json, outfile)

如果确定结束“}”是文件中的最后一个字节,则可以执行以下操作:

>>> f = open('test.json', 'a+')
>>> json.dump({"foo": "bar"}, f)  # create the file
>>> f.seek(0)
>>> f.read()
'{"foo": "bar"}'
>>> f.seek(-1, 2)
>>> f.write(',\n', f.write(',\n' + json.dumps({"spam": "bacon"})[1:]))
>>> f.seek(0)
>>> print(f.read())
{"foo": "bar",
"spam": "bacon"}

<> P>因为你的数据不是分层的,所以你应该考虑一个像“TSV”这样的平面格式。

< P>如果你确信关闭“}”是文件中的最后一个字节,你可以这样做:

>>> f = open('test.json', 'a+')
>>> json.dump({"foo": "bar"}, f)  # create the file
>>> f.seek(0)
>>> f.read()
'{"foo": "bar"}'
>>> f.seek(-1, 2)
>>> f.write(',\n', f.write(',\n' + json.dumps({"spam": "bacon"})[1:]))
>>> f.seek(0)
>>> print(f.read())
{"foo": "bar",
"spam": "bacon"}

因为你的数据不是分层的,所以你应该考虑一个像“TSV”这样的平面格式。

你可以用“代码”> PARSEDJEXJSO= JSON读取你的彩虹表。加载(JSONSRON Stand)读取JSON数据,解析它,修改它,写回它。@这个文件大小的BryanOakley。这可能会破坏我的计算机。如果你真的不想在每次更新时再次解析该文件,你必须
查找
关闭
}
前指向的文件指针,写入记录并放回关闭
}
。打开文件,查找到底,查找2个字符(
\n}
),写入
,\n“test1”:“0123456789”\n}
,然后关闭该文件。您可以使用
parsed_json=json.loads(json_string)
读取json数据,解析它,修改它,然后将其写回。@BryanOakley此文件的大小可能会破坏我的计算机。如果您真的不想在每次更新时再次解析该文件,您必须
seek
在关闭前查找文件指针
}
,写入记录并放回关闭的
}
。打开文件,查找到底,查找2个字符(
\n}
),写入
,\n“test1”:“0123456789”\n}
,然后关闭文件。回溯(最后一次调用):文件“rainbow.py”,第37行,在write_data_to_table(“test1”,“0123456789”)文件“rainbow.py”中,第21行,在write_data_to_table parsed_json=json.loads(“rainbow_table\\rainbow.json”)文件“C:\Python27\lib\json_init.py”中,第339行,在loads返回默认_解码器中。解码文件“C:\Python27\lib\json\decoder.py”,在解码obj中,第364行,end=self.raw_decode(s,idx=_w(s,0.end())文件“C:\Python27\lib\json\decoder.py”,第382行,在raw_decode中,raise VALUERROR(“无法解码json对象”)@Pyth0nicPenguin您的输入文件是json格式的文件吗?是的,我只是通过验证器回溯(最近一次调用):文件“rainbow.py”,第37行,在将数据写入表(“test1”、“0123456789”)文件“rainbow.py”的第21行中,在将数据写入表解析的json=json.loads(“rainbow\u table\\rainbow.json”)文件“C:\Python27\lib\json\u init.py”的第339行中,在加载返回默认的解码器中。解码文件“C:\Python27\lib\json\decoder.py”的第364行中,在解码obj中,end=self.raw_decode(s,idx=_w(s,0.end())文件“C:\Python27\lib\json\decoder.py”,第382行,在raw_decode中,raw_decode raise ValueError(“无法解码json对象”)@Pyth0nicPenguin您的输入文件是json格式的文件吗?是的,只是通过验证程序运行了它