结合词典和写入文本文件并再次阅读字典?
我打到一个链接,并获得每击一个json文件。然后我将数据写入文本文件。但是,当我想再次阅读它时,我想将它作为字典阅读。我该怎么做。结合词典和写入文本文件并再次阅读字典?
def url_seq(limit=5):
for i in range(limit):
link = 'http:...x={}'.format(i)
yield link
def json_seq(link):
for text in link:
with urllib.request.urlopen(text) as url:
data = json.loads(url.read().decode())
yield data['data']
open('data.txt', 'w').close()
for item in json_seq(url_seq(limit=100)):
with open('data.txt', 'a') as f:
json.dump(item, f)
f.write(',')
该出把文件就是这样, {'x': 0.0, 'y': -7.462079426179981},{'x': 1.0, 'y':-5.300602624446985},{'x': 2.0, 'y': 1.4418651159990272}, ... ,
不过我想读它作为一本字典。这样我可以将它们放到熊猫数据框中进行分析。
下面的代码给了我一个列表,有没有什么方法可以将它读到字典中。我在Python中有点新,对不起,如果我的意思是非pythonic的东西。提前致谢。
f = open('data.txt', 'r')
lines = f.read().split(',')
我建议把列表中的所有您的个人数据项,并保存是作为一个JSON文件。
data = [x for x in json_seq(url_seq(limit=100))]
with open('data.json', 'w') as f:
json.dump(data, f)
以后,你可以用pd.read_json
读取JSON文件:
df = pd.read_json('data.json')
如果你真的想节省内存,在之间的item
写道添加打开和关闭括号。
with open('data.json', 'w') as f:
f.write('[')
for item in json_seq(url_seq(limit=100)):
f.write(json.dumps(item) + ',')
f.write(']')
其实我想保存内存,并不想将数据先保存到列表中,而是直接将数据保存到文本文件中,因为数据会非常大。 – DataPsycho
@DataPoliceInc。请参阅编辑。另外,如果您打算将其作为熊猫数据框读取,您可以将其作为单个JSON编写,但我不明白问题所在。 –
@COLDSPEED现在我明白了。万分感谢。 – DataPsycho
如果将它另存为JSON,则可以将其作为JSON加载。 –