首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据作为JSON形式从PHP传递到Python

将数据作为JSON形式从PHP传递到Python
EN

Stack Overflow用户
提问于 2020-06-02 20:05:22
回答 2查看 154关注 0票数 0

使用json数据运行python脚本的Php代码:

代码语言:javascript
复制
$output = shell_exec("python php_test.py " . base64_encode(json_encode($process_data)) . " 2>&1");

用于解码json的Python代码:

代码语言:javascript
复制
jdata = json.loads(base64.b64decode(sys.argv[1]))

这就是$process_data的样子:

代码语言:javascript
复制
array (size=15)
  0 => 
    array (size=1)
      'konu' => string '{"tr":"Güvenlik amaçlarına giriş", "en":"Introduction to Security Goals."}' (length=78)
  1 => 
    array (size=1)
      'konu' => string '{"tr":"Kriptografinin Matematiği.", "en":"Mathematics of Cryptography."}' (length=73)
  2 => 
    array (size=1)
      'konu' => string '{"tr":"Geleneksel Simetrik Anahtarlı Şifreler.", "en":"Traditional Symmetric Key Ciphers."}' (length=93)
  3 => 
    array (size=1)
      'konu' => string '{"tr":"Cebirsel Yapılar.", "en":"Algebraic Structures."}' (length=57)
  4 => 
    array (size=1)
      'konu' => string '{"tr":"Modern Simetrik Anahtarlı Şifrelere Giriş.", "en":"Introduction to Modern Symmetric Key Ciphers."}' (length=108)
  5 => 
    array (size=1)
      'konu' => string '{"tr":"Gelişmiş Şifreleme Standardı.", "en":"Advanced Encryption Standard."}' (length=80)
  6 => 
    array (size=1)
      'konu' => string '{"tr":"Modern Simetrik Anahtarlı Şifrelerle Şifreleme.", "en":"Encipherment Using Modern Symmetric-Key Ciphers."}' (length=116)
  7 => 
    array (size=1)
      'konu' => string '{"tr":"Stream Ciphers", "en":"Akan Şifreleme Yöntemleri."}' (length=60)
  8 => 
    array (size=1)
      'konu' => string '{"tr":"Ara Sınav", "en":"Midterm Exam"}' (length=40)
  9 => 
    array (size=1)
      'konu' => string '{"tr":"Doğrusal ve Diferansiyel Kriptanaliz.", "en":"Linear and DifferentialCryptanalysis."}' (length=93)
  10 => 
    array (size=1)
      'konu' => string '{"tr":"Kriptografik Özet Fonsiyonları.", "en":"Cryptographic Hash Functions."}' (length=80)
  11 => 
    array (size=1)
      'konu' => string '{"tr":"Asimetrik Kriptoloji", "en":"Asymmetric Cryptography"}' (length=61)
  12 => 
    array (size=1)
      'konu' => string '{"tr":"Protokollar, Tcp/Ip Protokol ve Hizmetlerinde Güvenlik", "en":"Protocols, Security in Tcp/Ip Networks"}' (length=111)
  13 => 
    array (size=1)
      'konu' => string '{"tr":"Güvenlik Duvarları ve Sanal Özel Ağlar", "en":"Firewall and Virtual Private Networking"}' (length=99)
  14 => 
    array (size=1)
      'konu' => string '{"tr":"Saldırı Tespit Sistemleri", "en":"Intrusion Detection Systems"}' (length=72)

我收到一个解码器错误:

UnicodeEncodeError:“charmap”编解码器无法在33位置编码字符“\u0131”:字符映射到< undefined>

当我移除base64_encode时,我会得到“期望”、“分隔符”错误。

我猜是双引号造成的。我怎么才能逃过他们?

EN

回答 2

Stack Overflow用户

发布于 2020-06-02 21:13:58

在python方面,这似乎是一个编码问题,可能是因为PHP脚本与您在python中设置的代码不同。

似乎python中的json编码器/解码器需要使用UTF-8、UTF-16或UTF-32来表示JSON,推荐使用UTF-8作为最大互操作性的缺省值。你能确认PHP上的所有东西都是UTF-8吗?

以下是源代码:https://docs.python.org/3/library/json.html#character-encodings

票数 0
EN

Stack Overflow用户

发布于 2020-06-02 21:33:21

输入以下命令,将MS windows控制台的字符编码更改为utf-8

chcp 65001

现在再运行你的脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62160501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档