I'm looking for assistance to writing a dictionary to a .csv file. First, set a "gdata2" variable:
taburl <SPAN class="operator token">=</SPAN> hostedFeatureService <SPAN class="operator token">+</SPAN> <SPAN class="string token">'/{}/query/0'</SPAN>
where <SPAN class="operator token">=</SPAN> <SPAN class="string token">'1=1'</SPAN>
query <SPAN class="operator token">=</SPAN> <SPAN class="string token">"?where={}&outFields={}&returnGeometry=true&f=json&token={}"</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>where<SPAN class="punctuation token">,</SPAN> fieldsM<SPAN class="punctuation token">,</SPAN> token<SPAN class="punctuation token">)</SPAN>
queryfsURL <SPAN class="operator token">=</SPAN> taburl <SPAN class="operator token">+</SPAN> query
greq <SPAN class="operator token">=</SPAN> urllib2<SPAN class="punctuation token">.</SPAN>Request<SPAN class="punctuation token">(</SPAN>queryfsURL<SPAN class="punctuation token">)</SPAN>
gresp <SPAN class="operator token">=</SPAN> urllib2<SPAN class="punctuation token">.</SPAN>urlopen<SPAN class="punctuation token">(</SPAN>greq<SPAN class="punctuation token">)</SPAN>
gdata <SPAN class="operator token">=</SPAN> json<SPAN class="punctuation token">.</SPAN>load<SPAN class="punctuation token">(</SPAN>gresp<SPAN class="punctuation token">)</SPAN>
gdata2 <SPAN class="operator token">=</SPAN> gdata<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'features'</SPAN><SPAN class="punctuation token">]</SPAN>
<SPAN class="keyword token">print</SPAN> gdata2<SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>This codeblock gives me the gdata2 variable result as:
<SPAN class="punctuation token">[</SPAN><SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'geometry'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'y'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="number token">26.67525376665167</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'x'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="operator token">-</SPAN><SPAN class="number token">80.09297701660482</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'attributes'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'Ingress1Arrive'</SPAN><SPAN class="punctuation token">:</SPAN> 1519133580000L<SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'SurveyDate'</SPAN><SPAN class="punctuation token">:</SPAN> 1519102800000L<SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'globalid'</SPAN><SPAN class="punctuation token">:</SPAN> u<SPAN class="string token">'fdd28a97-9a28-400d-8284-5ce91868f26e'</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'objectid'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="number token">3</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'geometry'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'y'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="number token">26.67525546250736</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'x'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="operator token">-</SPAN><SPAN class="number token">80.0929301851895</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'attributes'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'Ingress1Arrive'</SPAN><SPAN class="punctuation token">:</SPAN> 1519136280000L<SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'SurveyDate'</SPAN><SPAN class="punctuation token">:</SPAN> 1519102800000L<SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'globalid'</SPAN><SPAN class="punctuation token">:</SPAN> u<SPAN class="string token">'cc83f1b4-6335-4659-8463-9d6d50d82bd7'</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'objectid'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="number token">4</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'geometry'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'y'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="number token">26.675340745164966</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'x'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="operator token">-</SPAN><SPAN class="number token">80.09289801628141</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'attributes'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="punctuation token">{</SPAN>u<SPAN class="string token">'Ingress1Arrive'</SPAN><SPAN class="punctuation token">:</SPAN> 1519227780000L<SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'SurveyDate'</SPAN><SPAN class="punctuation token">:</SPAN> 1519189200000L<SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'globalid'</SPAN><SPAN class="punctuation token">:</SPAN> u<SPAN class="string token">'99ed6b91-6823-4702-868a-2bb4dbd32cbf'</SPAN><SPAN class="punctuation token">,</SPAN> u<SPAN class="string token">'objectid'</SPAN><SPAN class="punctuation token">:</SPAN> <SPAN class="number token">5</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">}</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN></SPAN>From this I am attempting to write this result to a .csv file. It actually works great however I am having an issue with date values (Ingress1Arrive and SurveyDate) as they are epoch formatted values because this source is a hosted feature service.
The DictWriter proc:
<SPAN class="keyword token">with</SPAN> open<SPAN class="punctuation token">(</SPAN><SPAN class="string token">'C:temp\{}.csv'</SPAN><SPAN class="punctuation token">.</SPAN>format<SPAN class="punctuation token">(</SPAN>sheetname<SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">,</SPAN> <SPAN class="string token">'wb'</SPAN><SPAN class="punctuation token">)</SPAN> <SPAN class="keyword token">as</SPAN> outf<SPAN class="punctuation token">:</SPAN>
dw <SPAN class="operator token">=</SPAN> csv<SPAN class="punctuation token">.</SPAN>DictWriter<SPAN class="punctuation token">(</SPAN>outf<SPAN class="punctuation token">,</SPAN> delimiter<SPAN class="operator token">=</SPAN><SPAN class="string token">","</SPAN><SPAN class="punctuation token">,</SPAN> quotechar<SPAN class="operator token">=</SPAN><SPAN class="string token">"|"</SPAN><SPAN class="punctuation token">,</SPAN> fieldnames<SPAN class="operator token">=</SPAN><SPAN class="punctuation token">[</SPAN><SPAN class="string token">'objectid'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'globalid'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'SurveyDate'</SPAN><SPAN class="punctuation token">,</SPAN><SPAN class="string token">'Ingress1Arrive'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN>
headers <SPAN class="operator token">=</SPAN> <SPAN class="punctuation token">{</SPAN><SPAN class="punctuation token">}</SPAN>
<SPAN class="keyword token">for</SPAN> n <SPAN class="keyword token">in</SPAN> dw<SPAN class="punctuation token">.</SPAN>fieldnames<SPAN class="punctuation token">:</SPAN>
headers<SPAN class="punctuation token">[</SPAN>n<SPAN class="punctuation token">]</SPAN> <SPAN class="operator token">=</SPAN> n
dw<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN>headers<SPAN class="punctuation token">)</SPAN>
<SPAN class="keyword token">for</SPAN> row <SPAN class="keyword token">in</SPAN> gdata2<SPAN class="punctuation token">:</SPAN>
dw<SPAN class="punctuation token">.</SPAN>writerow<SPAN class="punctuation token">(</SPAN>row<SPAN class="punctuation token">[</SPAN><SPAN class="string token">'attributes'</SPAN><SPAN class="punctuation token">]</SPAN><SPAN class="punctuation token">)</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>Any recommendations on how/where to perform a conversion prior to writing the final .csv output so that the date format is something that makes sense?