2016-04-11 16 views
1

JSON'a bir dizi almaya çalışıyorum, böylece bir Python betiğine doğru bir şekilde okuyabiliyorum. Verilerin çıktısını almayı başardım ancak doğru formatı eklediğinden emin değilim. "Geçersiz kodlama, UTF-8, UTF-16 veya UTF-32 bekleniyor" alıyorum. JSON Ayrıştırıcı üzerinden çalıştırdığımda hata oluştu. İşte PHP: JSON ile sorun yaşama ve Python'a okuma

.... ben URL'den alıyorum sonucudur

[ 
{ 
    "year":"2016", 
    "Month":"Apr", 
    "the_days":"16, 29, 30" 
}, 
{ 
    "year":"2016", 
    "Month":"May", 
    "the_days":"13, 27" 
}, 
{ 
    "year":"2016", 
    "Month":"Jun", 
    "the_days":"10, 11, 24" 
}, 
{ 
    "year":"2016", 
    "Month":"Jul", 
    "the_days":"08, 22, 23" 
}, 
{ 
    "year":"2016", 
    "Month":"Aug", 
    "the_days":"06, 20" 
}, 
{ 
    "year":"2016", 
    "Month":"Sep", 
    "the_days":"02, 03, 16, 17, 30" 
}, 
{ 
    "year":"2016", 
    "Month":"Oct", 
    "the_days":"01, 14, 15, 29" 
}, 
{ 
    "year":"2016", 
    "Month":"Nov", 
    "the_days":"25" 
}, 
{ 
    "year":"2016", 
    "Month":"Dec", 
    "the_days":"09, 10, 23, 24" 
} 
] 

Bu böyle bir diziye veri koyarak elde edilir ....

$encodeArray = array(); 
    while($row = $result->fetch_assoc()) { 
    $encodeArray[] = $row; 
} 
header("Content-Type: application/json; charset=utf-8"); 

ben Bu konuda yanlış olanı bulmakta sorun yaşıyorum - bazı yardımlarla yapabilirdim!

+0

'$ encodeArray 'öğesini JSON'a dönüştürmek için ne kullanıyorsunuz? –

+0

$ encodeArray döndüren available_dates() adında bir işleve gider; ... o zaman eko json_encode yapıyorum (available_dates()); – dazzathedrummer

+0

@dazzathedrummer JSON geçerlidir - veri yapınızı doğru bir şekilde temsil edip etmediği başka bir konudur, ancak ayrıştırma hatasına neden olmamalıdır. Ancak, bunu yazarken ** python ** bunu ayrıştırılamıyor. Bunun yerine python'da bir sorun olmaz mıydı? Belki de bu kodu yazmalı ve python etiketlerini eklemelisiniz? – jDo

cevap

0

Dizininizi json dizesine php olarak dönüştürmek ve echo deyimini kullanarak sayfaya yazdırmak için json_encode işlevini kullanın. Benim dizisi ile yanlış bir şey yok daha gibi bakıyor

<?php 
    $json_arr = array(); 
    while($row = $result->fetch_assoc()) { 
     array_push($json_arr,$row); 
    } 
    echo json_encode($json_arr); 
?> 
+0

Evet, yaptığım şey bu - json çıktısı alıyorum ama bir hatayla - bu benim Python betiğimin URL'den okunamamasına neden oluyor - sadece bir sorun olup olmadığını merak ediyorum dizi. – dazzathedrummer

+0

@dazzathedrummer * "Evet, yaptığım şey budur" * Ardından, sorgunuzdaki kodu güncellemeniz gerekir, böylece aslında çalıştığınız kodu yansıtır. – jDo

0

Yani komut yanıt alabilirsiniz - bu sorun json deşifre olmaz benim Python komut oluyor olması mümkündür. Takip etmek için ayrı bir soru!