结合词典和写入文本文件并再次阅读字典?

问题描述:

我打到一个链接,并获得每击一个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(',') 
+0

如果将它另存为JSON,则可以将其作为JSON加载。 –

我建议把列表中的所有您的个人数据项,并保存作为一个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(']') 
+0

其实我想保存内存,并不想将数据先保存到列表中,而是直接将数据保存到文本文件中,因为数据会非常大。 – DataPsycho

+0

@DataPoliceInc。请参阅编辑。另外,如果您打算将其作为熊猫数据框读取,您可以将其作为单个JSON编写,但我不明白问题所在。 –

+0

@COLDSPEED现在我明白了。万分感谢。 – DataPsycho