使用Python在CSV文件中编写JSON数据,并重复多次

时间:2017-01-28 04:15:00

标签: python json matlab csv

尝试完成以下

  1. 每隔几秒钟,让python拉取unicode JSON数据(这样做很精细)

  2. 保存一个json数据项,在桌面上打开该CSV文件,清除它,写入并关闭它(这就是问题 - CSV文件存储更新)

  3. Matlab将读取文件处理(WORKS FINE)

  4. 返回第1步

  5. 我正在尝试的方式

    MATLAB代码:

    system('python /weather.py');
    load_weather_matlab();
    
    if final_weather > 30
    disp ('sunny')
    else
    disp ('not sunny')
    

    PYTHON CODE:

    r = requests.post(api_url + 'days', json=day, auth=auth)
    print r.json()
    
    r_output = r.json()
    weather = r_output['weatherA']
    
    print weather
    
    with open(CSV_FILE, "w+") as fp:
        fp.close()
    
    with open(CSV_FILE, "a") as fp:
        fp.write("%s" % (weather))
        fp.close()
    

    MATLAB FUNCTION load_weather_matlab:

    function [success] = load_weather_matlab();
    global final_weather
    
     load_weather(); % Import the CSV File
    
          weather_temperature  = transpose(weather_temperature);
          final_weather = weather_temperature (1); 
    success = 1;
    end
    

    MATLAB FUCTION load_weather:

    filename = '/Users/m/Desktop/CSV_FILE';
    delimiter = ',';
    formatSpec = '%f[^\n\r]';
    fileID = fopen(filename,'r');
    dataArray = textscan(fileID, formatSpec, 'Delimiter', delimiter, 'EmptyValue' ,NaN, 'ReturnOnError', false);
    fclose(fileID);
    weather_temperature = dataArray{:, 1};
    clearvars filename delimiter formatSpec fileID dataArray ans;
    

    我得到的错误就是这样 1)桌面上的文件CSV_FILE ...停止更新... 2)有时如果python拉出的JSON数据没有“天气”。数据 这可以在MATLAB中看到

    Traceback (most recent call last):
      File "/Users/m/Desktop/weather.py", line 106, in <module>
        weather = r_output['weatherA']
    KeyError: 'weatherA'
    

    但是其他时间(在它更新之前)它可以工作。

    这可以工作几次,但之后就会停止。我不知道为什么?有时,当“天气”出现时,我会收到KeyError。不在JSON中,但这不应该只是阻止文件更新正确吗?

    任何帮助表示赞赏

    感谢

0 个答案:

没有答案